Delphi XE で記述された SOAP サーバー/クライアント アプリケーションは、企業のプロキシ/ファイアウォールの背後にある Windows 7 x64 でユーザーが実行するまで、しばらくの間正常に動作します。アプリケーションは、要求で TSOAPAttachment オブジェクトを送受信します。
問題:
- このユーザーからの最初のリクエストが受信されて処理されると、サーバーはその後の (どのユーザーからの) リクエストも正常に処理できませんでした。
- サーバーは引き続きリクエストに応答しますが、リクエストの SOAPAttachment は、このユーザーからの最初のリクエストの後に破損しているように見えます。これが、リクエストを正常に処理できなかった理由です。
- サーバーにログをデバッグした後、リクエストのパラメーターの TSOAPAttachment.SourceStream がアクセス不能 (または空) になり、TSOAPAttachment.CacheFile も空になっていることに気付きました。したがって、SourceStream を使用しようとすると、アクセス違反エラーが返されます。
- さらに調査したところ、最初のリクエストでtempフォルダに生成されたBorlandSoapAttachment(n)ファイルが残っており、ロックされており(リクエストが正常に完了すると削除されるはず)、次のリクエストのBorlandSoapAttachment(n+1)ファイルが山積みになっていることが判明しました。上。
- IIS を再起動するか、アプリケーション プールをリサイクルすると、SOAP サーバーは再び機能します。
- 同じマシンがこのネットワークの外で実行されている場合、問題なく動作するため、プロキシまたはユーザーのネットワークが原因であることは間違いありません。
- 問題にさらに謎を追加するために、同じプロキシの背後にある WinXP でアプリケーションを実行してもまったく問題はありません。
この状況でしばらく立ち往生しているため、ヘルプや推奨事項は非常に高く評価されています。
よろしくお願いします。