이것은 적어도 5 년간 실행 된 오래된 레거시 코드입니다. DLL은 Paypal의 PayFlowPro 가맹점 처리 서비스와 관련이 있지만이 문제를 일으키는 Windows 시나리오라고 생각합니다. 아래의 코드를 기반으로 갑자기HTTP 상태 443 Server.CreateObject VBScript에서 기본 ASP IIS 6.0
, 나는 브라우저에서이 오류를보고 있어요 : 나는 위의 433을 본 이후
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
:
> 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)
IIS 로그는 나에게 443을 보여줍니다 , 나는 약간의 보안 오류가 있어야한다고 생각하고있다. 테스트와 마찬가지로 관리자 그룹에 app-pool 사용자를 추가하고 IIS를 다시 시작했지만 여전히 똑같은 오류가 발생했습니다. 또한 해당 사용자에게 디스크의 .DLL을 읽을 수있는 특정 액세스 권한을 부여했습니다.
REGASM을 실행하여 .DLL을 다시 등록하려고했습니다. 나는 또한 REGSRV32 시도했지만 .NET DLL을 실패합니다 같아요. 제가이 오래된 소프트웨어를 다루었으므로 몇 년이 지났습니다.
ASP/VBScript를 코드
: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
또한, 나는 443 HTTP 상태가 438 오지 Err.Number로 변경됩니다 방법을 잘 모르겠어요.
로그에 443 상태가 아니다/오류 코드이지만 포트 번호 (443 = SSL)입니다. 응답 코드는 줄 끝 부분에 있습니다 (200 = OK). 진짜 문제는 PayPal.Payments.Communication.PayflowNETAPI를 만들 수 없다는 것입니다. 서버에서 무언가가 변경 되었습니까? AppPool은 여전히 32 비트로 설정되어 있습니까? – johna
또한 AppPool .NET 버전이 변경되지 않았는지 확인하고 DLL 파일에 대한 사용 권한을 확인하십시오. – johna
부가 메모 : 비교'client = null'은 항상'False'로 평가됩니다. 'Null'값을 확인하려면 ['IsNull()'] (http://msdn.microsoft.com/en-us/library/zbchw6hz%28v=vs.84%29.aspx) 함수를 사용해야합니다. 'Null'은 다른 'Null'값을 포함하여 다른 값과 다른 값으로 정의됩니다. –