Ich habe eine Lösung basierend auf ASP, VB6, COM und SQL Server. Der Web-Server ist IIS 6.Was ist VBScript Fehlercode 0x800A01FB
In unregelmäßigen Abständen, erhalte ich die folgende Fehlermeldung auf der ASP-Seite:
Microsoft VBScript runtime (0x800A01FB)
An exception occurred: 'objPSM.GetValue'
(wo "objPSM" ist meine eigene Session-Handling-COM-Klasse).
Wenn ich die Seite neu lade, funktioniert es.
Ich habe versucht, den Fehlercode googeln, stellt es diesen Artikel (http://support.microsoft.com/kb/262681), aber das sollte nicht für mein Problem gelten, da ich nicht das Session-Objekt verwende - Ich habe meine eigene Session-Behandlung Code, Cookies und verwendet die Datenbank, um den Status zu speichern. Hier
ist der VB-Code, der Bomben aus:
Public Function GetValue(ByVal pSessionID As String, _
ByVal pName As String) As String
Dim ErrSource As String
Dim ErrNumber As Long
Dim ErrDescription As String
On Error GoTo Err_Handler
Dim lConn As ADODB.Connection
Dim cmd As ADODB.Command
Dim lReturnValue As String
Set lConn = GetDBConn
Set cmd = CreateObject("ADODB.Command")
cmd.ActiveConnection = lConn
cmd.CommandText = "pss_getvalue"
cmd.Parameters.Append cmd.CreateParameter("p_pss_id", adVarChar, adParamInput, 36, pSessionID)
cmd.Parameters.Append cmd.CreateParameter("p_pss_name", adVarChar, adParamInput, 35, pName)
cmd.Parameters.Append cmd.CreateParameter("p_pss_value", adVarChar, adParamOutput, 255)
cmd.Execute , , adCmdStoredProc
lReturnValue = Nvl(cmd.Parameters("p_pss_value").Value, "")
lConn.Close
Set cmd = Nothing
Set lConn = Nothing
GetValue = lReturnValue
Exit_Procedure:
Exit Function
Err_Handler:
ErrSource = Err.Source
ErrNumber = Err.Number
ErrDescription = Err.Description
On Error Resume Next
Call LogEvent(ErrSource & ".GetValue: ", ErrNumber & ": " & ErrDescription)
GetValue = ""
GoTo Exit_Procedure
End Function
Beachten Sie, dass, auch wenn ein Fehler-Handler hier ist, wird der Code nie hier bekommt, weil die VB-Laufzeit beendet und die Ausnahme auslöst, was zu einem gebrochenen ASP-Seite statt still Protokollieren und eine leere Zeichenfolge zurückgeben.
Wer weiß, was der Fehlercode (0x800A01FB) bedeutet?
UPDATE: Gesprochen mit dem Hosting-Anbieter und sie den IIS-Anwendungspool recycelt. Der Fehler ist weg. Kehre zu dieser Frage zurück, wenn das Problem erneut auftritt.
Haben Sie versucht, den Patch im Supportartikel zu installieren? – Eric
Was haben Sie verwendet, um Ihre eigene Session-Handling-COM-Klasse zu erstellen? Wäre VB6 eine gute Schätzung? – AnthonyWJones
Ja, wie angegeben, basiert die Lösung auf ASP-Seiten, die eine VB6-COM-DLL aufrufen, die wiederum mit einer SQL Server-Datenbank kommuniziert. – ObiWanKenobi