PayPal の PayFlowPro に接続して、定期請求サブスクリプション内で使用されるクレジット カードを更新するために実行されるコードがいくつかあります。このコードは以前は .Net 2 アプリ プールで問題なく動作していましたが、4.0 に移行すると非常に扱いにくくなり、動作する場合と動作しない場合があります。コードは非常に簡単に見えるので、何が問題なのかわかりません。
エラーは次のとおりです。System.Web.HttpUnhandledException (0x80004005): Exception of type 'System.Web.HttpUnhandledException' was thrown. ---> System.Runtime.InteropServices.COMException (0x8000000A): The data necessary to complete this operation is not yet available.
断続的に失敗する (ただし、古いサーバーで動作していた) コードのブロックは次のとおりです。
Try
objWinHttp = CreateObject("WinHttp.WinHttpRequest.5.1")
objWinHttp.Open("POST", GatewayHost, False)
objWinHttp.setRequestHeader("Content-Type", "text/namevalue") ' for XML, use text/xml
objWinHttp.SetRequestHeader("X-VPS-Timeout", "90")
objWinHttp.SetRequestHeader("X-VPS-Request-ID", requestID)
objWinHttp.Send(parmList)
Catch exc As Exception
End Try
' Get the text of the response. (DIES ON LINE BELOW)
transaction_response = objWinHttp.ResponseText
紛らわしい部分は、デバッグが常に最も難しい断続的に動作することです。これは何年も前から存在していたものであり、唯一の違いは、アプリ プールが現在 .Net 4 と .Net 2.0 で実行されていることですが、それが問題になるとは思いません。2.0に戻しましたが、問題なく動作しています。
どこから探し始めるかについて何か推測はありますか?WinHttp.WinHttpRequest.5.1 には .Net 4 で問題がありますか? 古いサーバーは 2008 R2 で、新しいサーバーは 2012 R1 だったので、それもその一部でしょうか?
更新- 2.0 に変更しても、まだ修正されませんでした。それは機能していましたが、再び停止しました。これは意味がありません。