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 ausgewertetFalse
. Sie müssen dieIsNull()
- Funktion, um zu überprüfen fürNull
Werte, weilNull
ist definiert als ein Wert, der ungleich zu jedem anderen Wert, inklusive anderenNull
Werte.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Danke an alle. Ich wünschte, ich gerettet hatte meine ursprüngliche Fehlermeldung. Ich habe seit C# so lange, dass ich vergessen hatte, wie VBScript-code. Ich habe versucht die Fehlerbehandlung haben können, gibt mir falsche Ergebnisse.
Wenn einige der Jungs, die hatten, wie würde Sie Antworten, ich hätte Sie akzeptiert.
Der 443 war ein falscher Weg und eine schlechte Annahme auf meinem Teil, dass es ein Fehler war, nicht einen port #.
Leider jetzt kann ich nicht speichern, den ursprünglichen Fehler. Ich hatte code Hinzugefügt, um mein original-code zu geben, die vermeintlich besser oder enger Fehlerbehandlung, und indem das "= null" zu testen, war eine schlechte Idee.
War das eine ziemlich gute Erklärung von VBScript die Verwendung von leeren vs nichts vs isNull: http://evolt.org/node/346/
Habe ich entfernt, und der korrigierte code: