115 messaggi dal 01 novembre 2012
Buonasera a tutti è da un po che non vi vengo a trovare, ad ogni modo vengo subito al dunque, ho creato un'App. Web in ASP Visual Basic con database MySql e non capisco come mai mi va in Crash almeno una volta al giorno, sicuramente in funzione di qualche operazione che commette qualche utente credo, e mi da errore e nel registro eventi trovo quanto di seguito riportato:

Impossibile riattivare il filtro eventi con query "SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA "Win32_Processor" AND TargetInstance.LoadPercentage > 99" nello spazio dei nomi "//./root/CIMV2". Errore 0x80041003. Impossibile recapitare gli eventi tramite questo filtro fino alla risoluzione del problema.

chiaramente per riavviare il tutto mi basta andare nell'IIS e riavviare il sito ma vorrei intercettare e risolvere una volta per tutte.

attendo con impazienza che qualcuno possa aiutare.


P.S. Saluto calorosamente Moreno che in passato è stato il mentore.

Nando.
11.097 messaggi dal 09 febbraio 2002
Contributi
Heilà Nando, ben trovato!

Il problema che stai riscontrando non dovrebbe essere causato dall'applicazion web, infatti qui puoi leggere che la causa è del tutto diversa e che può essere ignorato.
https://support.microsoft.com/en-us/help/2545227/event-id-10-is-logged-in-the-application-log-after-you-install-service

In quella pagina trovi anche il paragrafo "Resolution" che ti permette di creare uno script per impedire che quegli errori finiscano nell'event viwewer.

Tornando alla webapp: tu come determini che sta crashando una volta al giorno?

ciao ciao,
Moreno

Enjoy learning and just keep making
115 messaggi dal 01 novembre 2012
Ciao Moreno ben ritrovato, diciamo che il post l'ho aperto già con una mia deduzione perchè in seguito all'errore ho guardato nel registro eventi del server è ho riscontrato quanto detto nel post come ultima attività che riguarda gli errori Origine: VMI Registro applicazioni, mentre nell'Origine: ASP.NET 40 Registro: Applicazione ho trovato questo:


L'eccezione seguente è stata generata dal provider di eventi 'EventLogProvider' nell'applicazione '/' (nel ciclo di vita di un'applicazione viene registrata al massimo una eccezione per ogni istanza del provider):

System.Web.HttpException (0x80004005): Il provider EventLogWebEventProvider non è in grado di registrare un evento con il codice di errore 0x80070057.
   in System.Web.Management.EventLogWebEventProvider.ProcessEvent(WebBaseEvent eventRaised)
   in System.Web.Management.WebBaseEvent.RaiseInternal(WebBaseEvent eventRaised, ArrayList firingRuleInfos, Int32 index0, Int32 index1)


ma l'errore che in realtà ad un certo punto mi genera l'applicazione Web è questo:

Errore di runtime

Descrizione: Errore di un'applicazione sul server. Per motivi di sicurezza, le attuali impostazioni personalizzate relative agli errori dell'applicazione impediscono di visualizzare un modalità remota ulteriori dettagli sull'errore riscontrato. Tali dettagli possono essere tuttavia visualizzati bei browser eseguiti localmente sul server.

Dettagli: Per abilitare la visualizzazione dei dettagli di questo messaggio di errore specifico sul server remoto, creare un tag di configurazione <customErrors> dell'applicazione in modo che punti all'URL di una pagina di errore personalizzata.

<!-- File di configurazione Web.Config -->

<configuration>
       <system.web>
            <customErrors mode="off"/>
       </system.web>
</configuration>

Note: E' possibile personalizzare la pagina di errore corrente modificando l'attributo "defaultRedirect" del tag di configurazione <customErrors> dell'applicazione in modo che punti all'URL di una pagina di errore personalizzata.

<!-- File di configurazione Web.Config -->

<configuration>
       <system.web>
            <customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/>
       </system.web>
</configuration>




l'errore di RunTime è quello che mi viene visualizzato quando cerco di autenticarmi con user e pwd

ecco questo è quanto, spero sia sufficiente per determinare la causa

buona domenica

P.S. ho fatto anche lo script che mi hai consigliato ed è andato a buon fine, ma come potrei controllare che è andato veramente a buon fine ??
Modificato da modelrc il 29 aprile 2018 17.05 -
11.097 messaggi dal 09 febbraio 2002
Contributi
Ciao,
ok, bisogna scoprire da cosa dipende quell'errore di runtime. Al momento è impossibile saperlo perché la pagina di errore non sta mostrando la riga di codice che ha scatenato il problema. Come è scritto nella pagina di errore, devi aprire il tuo web.config e inserire questo frammento nel nodo system.web.
<customErrors mode="off"/>


Se hai già il customErrors, limitati a impostare su Off l'attributo mode.
Ripubblica, poi riprova ad autenticarti con user e password e a questo punto usciranno dei dettagli utili a capire il problema. Postali qui, così vediamo come proseguire.

Subito dopo, togli il customErrors oppure riporta Mode su On.


ho fatto anche lo script che mi hai consigliato ed è andato a buon fine, ma come potrei controllare che è andato veramente a buon fine ??

Butta un occhio all'event viewer per qualche giorno e, se l'errore 0x80041003 non appare più, direi che il problema è risolto. Del resto il fix è stato pubblicato da Microsoft, direi che è affidabile.

ciao,
Moreno
Modificato da BrightSoul il 29 aprile 2018 21.00 -

Enjoy learning and just keep making
115 messaggi dal 01 novembre 2012
l'errore che ora mi visualizza è:

Errore server nell'applicazione '/'.
--------------------------------------------------------------------------------

Connection must be valid and open. 
Descrizione: Eccezione non gestita durante l'esecuzione della richiesta Web corrente. Per ulteriori informazioni sull'errore e sul suo punto di origine nel codice, vedere la traccia dello stack. 

Dettagli eccezione: System.InvalidOperationException: Connection must be valid and open.

Errore nel codice sorgente: 

Durante l'esecuzione della richiesta Web corrente è stata generata un'eccezione non gestita. Per informazioni sull'origine e la posizione dell'eccezione, vedere la traccia dello stack dell'eccezione riportata di seguito.  

Traccia dello stack: 


[InvalidOperationException: Connection must be valid and open.]
   MySql.Data.MySqlClient.ExceptionInterceptor.Throw(Exception exception) +192
   MySql.Data.MySqlClient.MySqlCommand.Throw(Exception ex) +28
   MySql.Data.MySqlClient.MySqlCommand.CheckState() +189
   MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior) +252
   GvoWebAutomotive.miaClasse.VerificaLogin(String StrLogin, String StrPwd) in C:\GvOnTheWeb\GvoWebAutomotive\GvoWebAutomotive\App Codice\miaClasse.vb:77
   GvoWebAutomotive.WebLogin.Button1_Click(Object sender, EventArgs e) in C:\GvOnTheWeb\GvoWebAutomotive\GvoWebAutomotive\WebLogin.aspx.vb:17
   System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +154
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3691

 



quindi capisco che si è generato un errore da qualche parte che al moneto di rientrare nell'applicazione trova il database aperto e dato che la fase di login tenta di riaprirlo da errore giusto ?
Modificato da modelrc il 30 aprile 2018 02.22 -
11.097 messaggi dal 09 febbraio 2002
Contributi
Ciao,
in quella pagina di errore puoi vedere lo stack trace, cioè l'elenco di tutte le chiamate che hanno portato all'errore. Lì puoi vedere che l'esatto punto che sta causando il problema: si trova in miaClasse.vb alla riga 77.

Probabilmente stai tentando di inviare una query al db usando un oggetto command (SqlCommand, OleDbCommand o altro) a cui hai passato un oggetto connection non aperto. La connessione deve essere esplicitamente aperta prima che tu possa inviare una query al database.

Quindi, posta il codice c'è si trova intorno alla riga 77 del file miaClasse.vb.
Credo che basterà aggiungere un conn.Open() prima dell'invio della query.

In fondo a questa pagina trovi un esempio in cui si vede che la connessione viene aperta con Open prima che la query sia inviata dal comando.
https://msdn.microsoft.com/en-us/library/fksx3b4f.aspx

ciao,
Moreno

Enjoy learning and just keep making
115 messaggi dal 01 novembre 2012
ok ora di seguito ti posto la funzione incriminata dove la riga 77 è la riga di comando:

SRead = SComando.ExecuteReader


mentre la funzione completa è:

Public Class miaClasse
    Inherits System.Web.UI.Page
    Private UsuariosConnectionString As String
    Dim ServerString As String = "Server=localhost;User Id=root;Password=*******;Database=dbgvo" 'stringa per collegamento locale
    Dim SQLConnection As MySqlConnection = New MySqlConnection
    Dim MyDr As MySqlDataReader

    Public Function VerificaLogin(ByVal StrLogin As String, ByVal StrPwd As String)
        SQLConnection.Close()
        Dim cnn As New MySqlConnection("server=localhost;User Id=root;password=martina;database=tabpass")
        SQLConnection.ConnectionString = ServerString
        Try
            If SQLConnection.State = ConnectionState.Closed Then
                SQLConnection.Open()
                ' MsgBox("Connessione con MySql avvenuta con Successo")
            Else
                SQLConnection.Close()
                ' MsgBox("Connessione con MySql NON avvenuta con Successo")
            End If
        Catch ex As Exception
            ClientScript.RegisterStartupScript(Me.GetType(), "ClientScript", "alert (ex.ToString)", True)
        End Try
        Dim SComando As New MySqlCommand("SELECT * FROM tabpass where login ='" & StrLogin & "' and sanha='" & StrPwd & "'", SQLConnection)
        'Creo comando lettura
        Dim SRead As MySqlDataReader
        SRead = SComando.ExecuteReader

        If SRead.Read Then
            MyDr = SRead
            '  SRead.Close()
            '  SQLConnection.Close()
            Return MyDr
        Else
            MyDr = SRead
            ' SRead.Close()
            ' SQLConnection.Close()
            Return MyDr
        End If
    End Function
End Class


Nando
62 messaggi dal 01 febbraio 2017
Scusa ... all'ingresso nella funzione la connessione viene sempre chiusa, poi controlli se è effettivamente chiusa e già qui ...
Ora se è chiusa la apri, ma se è aperta la chiudi, quindi sotto la troverà chiusa, quindi l'ExecuteReader non troverà nulla, andando in errore l'istruzione successiva ...
Quindi mi pare di capire che la prima volta la esegue, dalla seconda in poi darà errore.
Modificato da SensoBit il 30 aprile 2018 17.11 -

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.