HTTP-Status-443 auf dem Server.CreateObject in VBScript unter Klassischem ASP, IIS 6.0

Dies ist ein altes legacy-code, der ausgeführt worden ist, die mindestens 5 Jahre. Die DLL passiert, eine Beziehung zu Paypal PayFlowPro merchant processing service, aber ich denke, das ist eine Windows-Szenario, das Problem verursacht.

Plötzlich, basierend auf den code unten, sehe ich diese Fehlermeldung im browser:

> Error with new credit card processing software, please call Neal at xxx-xxx-xxxx
> Error Ref102: client = Server.CreateObject returned Null
> (Detailed error: Object doesn't support this property or method)
> (Detailed error: 438)

Dem IIS-log zeigt mir 443:

2013-12-19 00:57:24 W3SVC4 173.45.87.10 POST /myapps/adm_settle.asp - 443 - 76.187.77.159 Mozilla/5.0+(Windows+NT+6.2;+WOW64;+rv:26.0)+Gecko/20100101+Firefox/26.0 200 0 0

Da sah ich die 433 oben, ich ' m denken, es muss eine gewisse Sicherheit Fehler. Nur als test habe ich versucht, indem Sie den app-pool Benutzer in der Gruppe Administrator, IIS neu gestartet, und immer noch genau denselben Fehler. Ich habe auch gegeben, dass die user spezifischen Zugriff auf Lesen Sie die .DLL auf der Festplatte.

Ich machte REGASM, um zu versuchen, zu registrieren .DLL. Ich habe auch versucht REGSRV32, aber ich denke, das scheitert an .NET-DLLs. Es ist schon ein paar Jahre her, seit ich behandelt haben software in diesem Alter.

ASP/VBScript-Code:

    Err.Clear 
    On Error Resume Next 
    set client = Server.CreateObject("PayPal.Payments.Communication.PayflowNETAPI")
    If Err.number > 0 Then 
       response.write "Error with new credit card processing software, please call Neal at xxx-xxx-xxxx" 
       response.write "</br>(Detailed error: " & Err.Description & ")" 
       response.write "</br>(Detailed error: " & Err.Number & ")" 
       response.End 
    End If 
    If client Is Nothing Then 
       Response.write "Error with new credit card processing software, please call Neal at xxx-xxx-xxxx" 
       Response.Write "</br>Error Ref101: client = Server.CreateObject returned 'nothing' "
       response.write "</br>(Detailed error: " & Err.Description & ")" 
       response.write "</br>(Detailed error: " & Err.Number & ")" 
       Response.End 
    End If 
    If client = null Then 
       Response.write "Error with new credit card processing software, please call Neal at xxx-xxx-xxxx" 
       Response.Write "</br>Error Ref102: client = Server.CreateObject returned Null "
       response.write "</br>(Detailed error: " & Err.Description & ")" 
       response.write "</br>(Detailed error: " & Err.Number & ")" 
       Response.End 
    End If 

Außerdem bin ich nicht sicher, wie die 443 http-status verändert wird, um eine 438 Err.Anzahl.

  • Die 443 in deinem log ist nicht der status - /Fehler-code, aber ist die Portnummer (443 = SSL). Der response-code wird in der Nähe des Ende der Linie (200 = OK). Das eigentliche problem ist, dass PayPal.Zahlungen.Kommunikation.PayflowNETAPI kann nicht erstellt werden. Hat sich etwas verändert auf deinem server? AppPool noch 32 bit?
  • Überprüfen Sie auch AppPool .NET-version nicht geändert hat, und überprüfen Sie die Berechtigungen der DLL-Datei.
  • Als Randbemerkung: der Vergleich client = null wird immer ausgewertet False. Sie müssen die IsNull() - Funktion, um zu überprüfen für Null Werte, weil Null ist definiert als ein Wert, der ungleich zu jedem anderen Wert, inklusive anderen Null Werte.
InformationsquelleAutor NealWalters | 2013-12-19
Schreibe einen Kommentar