0

.NET SOAP Web サービスにアクセスする Delphi 7 (ビルド 8.1) アプリケーションに問題があります。ほとんどの場合は問題なく動作しますが、アクセス違反が発生することがあります。ユーザーが「数時間」以内に最初に Web サービスにアクセスした場合にのみ、エラーが発生したと思います (ただし、100% 確実ではありません)。問題。

関連するすべてのコンピューターで DEP (データ実行防止) を無効にし、次のダウンロードから更新された WSDL インポーターも試しました: http://cc.embarcadero.com/Item/24535。(ただし、ランタイム ファイルに関する readme ファイルをたどることができなかったので、それが実際の問題でしょうか?)

この問題を解決する方法を知っている人はいますか?

4

2 に答える 2

2

この質問に対する私の回答を参照してください。例外が発生したときに SOAP 応答を取得するにはどうすればよいですか? 実際には 2 つの答えがありますが、興味深いのは RIO OnAfterExecute ハンドラです。そこで、SOAP 応答をファイルに記録し、何が起こっているかを確認できます。非アクティブ状態が何時間も続いた後、サーバーが空の応答を返しているか、タイムアウトになっている可能性があります。SOAP 応答 XML が空の状態で返され、その応答を SOAP オブジェクトとして処理しようとすると、nil になり、確実に A/V で失敗します。このようにして、戻ってくる生の TEXT を検査し、それに応じて反応することができます。そして、実際にここで防御コードを構築できます。たとえば、応答が空の場合は、SOAP 障害の例外を表す他の XML に置き換えることができます。これで、SOAP ハンドラーは何をすべきかを認識します。

于 2013-03-06T15:49:37.167 に答える