Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 14 su 14

Hybrid View

  1. #1
    Quote Originariamente inviata da gibra Visualizza il messaggio
    E lo chiedi a noi???

    Tutto � possibile.

    Buona Natale
    Magari qualcuno sapeva.
    Grazie, buone feste.



    Avevo lasciato il programma in esecuzione avviandolo come amministratore, adesso oltre l'errore precedente si � verificato un altro errore nello stesso momento:

    Impossibile trovare la descrizione per l'ID evento 0 dall'origine .NET Runtime. Il componente che ha generato l'evento non � installato nel computer locale oppure l'installazione � danneggiata. � possibile installare o ripristinare il componente nel computer locale.


    Se l'evento ha avuto origine in un altro computer, le informazioni per la visualizzazione sono state salvate con l'evento.


    Con l'evento sono state salvate le informazioni seguenti:


    ProcessName: NomeProgramma
    ProcessId: 6888
    Impossibile tracciare l'evento: System.MethodAccessException: System.Diagnostics.AssertSection..ctor() ---> System.AccessViolationException: Tentativo di lettura o scrittura della memoria protetta. Spesso questa condizione indica che altre parti della memoria sono danneggiate.
    in System.Threading.CompressedStack.GetDelayedCompres sedStack(StackCrawlMark& stackMark, Boolean walkStack)
    in System.Threading.CompressedStack.GetCompressedStac k(StackCrawlMark& stackMark)
    in System.Security.CodeAccessSecurityEngine.Reflectio nTargetDemandHelper(Int32 permission, PermissionSet targetGrant)
    --- Fine dell'analisi dello stack dell'eccezione interna ---
    in System.RuntimeTypeHandle.CreateInstance(RuntimeTyp e type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandle& ctor, Boolean& bNeedSecurityCheck)
    in System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean fillCache)
    in System.RuntimeType.CreateInstanceImpl(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean fillCache)
    in System.Activator.CreateInstance(Type type, Boolean nonPublic)
    in System.Configuration.TypeUtil.CreateInstanceWithRe flectionPermission(Type type)
    in System.Configuration.TypeUtil.CreateInstanceRestri cted(Type callingType, Type targetType)
    in System.Configuration.ConfigurationElement.CreateEl ement(Type type)
    in System.Configuration.ConfigurationElement.get_Item (ConfigurationProperty prop)
    in System.Diagnostics.SystemDiagnosticsSection.get_As sert()
    in System.Diagnostics.DiagnosticsConfiguration.get_As sertUIEnabled()
    in System.Diagnostics.DefaultTraceListener.Initialize Settings()
    in System.Diagnostics.DefaultTraceListener.get_LogFil eName()
    in System.Diagnostics.DefaultTraceListener.Write(Stri ng message, Boolean useLogFile)
    in System.Diagnostics.DefaultTraceListener.Write(Stri ng message)
    in System.Diagnostics.TraceListener.WriteHeader(Strin g source, TraceEventType eventType, Int32 id)
    in System.Diagnostics.TraceListener.TraceData(TraceEv entCache eventCache, String source, TraceEventType eventType, Int32 id, Object data)
    in System.Diagnostics.TraceSource.TraceData(TraceEven tType eventType, Int32 id, Object data)
    in System.Transactions.Diagnostics.DiagnosticTrace.Tr aceEvent(TraceEventType type, String code, String description, TraceRecord trace, Exception exception, Guid& activityId, Boolean emitTransfer, Object source).


    La risorsa messaggio � presente ma non � possibile trovare il messaggio nella tabella delle stringhe o dei messaggi
    Prover� anche lanciandolo dal sorgente per vedere dove si ferma il codice al momento dell'errore, come suggeritomi.

  2. #2
    Bisogna vedere cosa intendi per: "Smette di funzionare". Se smette ma resta "aperta" con un qualche messaggio di errore il controllo è un attimino più complicato, anche se fattibile.

    Se invece si chiude proprio... basta una seconda piccola applicazione lanciata "in tandem" con la prima che con un timer controlla regolarmente in "Process.GetProcessesByName" se l' applicazione principale è aperta o no, e nel caso la lancia "again and again".

    Io cmq metterei TUTTO il codice, Sub per Sub, Function per Function, in Try... Catch... è alquanto strano che gli errori non vengano rilevati.
    Ultima modifica di eziogsv; 22-12-2016 a 23:56

  3. #3
    Vista l' immagine. Quindi l' errore NON E' un errore di eccezione non gestita di VB.NET: il messaggio viene da Windows, non da VB.NET.

    Fai questa prova (ma devi lanciare il programma da VB.NET, NON l' eseguibile... non so se ti è possibile).

    Debug ==> Finestre ==> Impostazione eccezioni

    Nella finestra di Impostazione eccezioni seleziona tutto il possibile (clicca nei quadrati neri per selezionate tutto).

    Soprattutto nella sezione "GPU Memory Access Exceptions", dove c' è la 0x000005.

    Fatto questo, quando lanci il programma da VB.NET (meglio Debug mode) il programma dovrebbe interrompersi esattamente nel punto che ha generato l'errore, con tanto di finestrella di messaggio.

  4. #4
    Credo di aver trovato la causa del problema, ogni volta che aggiorno i grafici non libero le risorse utilizzate dal report:

    codice:
            Me.Validate()
            Me.GraficoFRCSCF232MMBindingSource.EndEdit()
            Me.GraficoFRC_SCF2_32MMTableAdapter.Fill(Me.ArchivioDataSet1.GraficoFRC_SCF2_32MM)
            Me.GraficoFRCSCF332MMBindingSource.EndEdit()
            Me.GraficoFRC_SCF3_32MMTableAdapter.Fill(Me.ArchivioDataSet1.GraficoFRC_SCF3_32MM)
            Me.GraficoFRCSCF337MMBindingSource.EndEdit()
            Me.GraficoFRC_SCF3_37MMTableAdapter.Fill(Me.ArchivioDataSet1.GraficoFRC_SCF3_37MM)
            ReportViewer1.RefreshReport()

    Dovrei rilasciare le risorse e poi ricostruire il report, ho modificato il codice precedente con questo:

    codice:
            Dim reportDataSource As New Microsoft.Reporting.WinForms.ReportDataSource()
            Dim strDsName = ReportViewer1.LocalReport.DataSources(0).Name
    
    
            reportDataSource.Name = strDsName
            reportDataSource.Value = ReportViewer1.LocalReport.DataSources(0).Value
    
    
            ReportViewer1.Dispose()
            ReportViewer1.LocalReport.DataSources.Add(reportDataSource)
            ReportViewer1.LocalReport.ReportEmbeddedResource = "reportGrafici.rdlc"
            Me.Validate()
            Me.GraficoFRCSCF232MMBindingSource.EndEdit()
            Me.GraficoFRC_SCF2_32MMTableAdapter.Fill(Me.ArchivioDataSet1.GraficoFRC_SCF2_32MM)
            Me.GraficoFRCSCF332MMBindingSource.EndEdit()
            Me.GraficoFRC_SCF3_32MMTableAdapter.Fill(Me.ArchivioDataSet1.GraficoFRC_SCF3_32MM)
            Me.GraficoFRCSCF337MMBindingSource.EndEdit()
            Me.GraficoFRC_SCF3_37MMTableAdapter.Fill(Me.ArchivioDataSet1.GraficoFRC_SCF3_37MM)
            ReportViewer1.RefreshReport()

    Pero' mi da errore "Stack vuoto" alla riga:
    codice:
            ReportViewer1.LocalReport.DataSources.Add(reportDataSource)

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.