Soap::Lite (Perl) を使用して作成された Web サービスを使用しようとしています。C# を使用してサービスを利用しています。ほとんどの場合、問題なく動作します。応答を取得して、必要に応じて解析できます。ただし、機能しない特定の通話があります。
次のメッセージが表示されます:「既存の接続がリモート ホストによって強制的に閉じられました」
サーバーが何らかの理由で接続を切断している可能性があることは理解しています。その理由を見つけようとしています。一部の応答の詳細のサイズが原因で発生していると思います。特に常に失敗するものがあります.SOAP応答からXMLを表示すると、その場所に到達してサイズ制限に達した場合とまったく同じ場所で常に切り捨てられます.
そのため、MaxReceivedMessageSize やタイムアウト設定などを変更するなど、クライアント サイズについて考えられることはすべて実行しました。いつも同じ場所で止まる。
生の XML を表示できるクラスも作成しましたが、同じ場所で停止します。
サーバー上の何かを変更する必要があるのではないかと考えていますが、試したすべてが機能しません。このサービスは、IIS 6 を実行している Web サーバーでホストされています。
クライアントおよび/またはサーバー側で私ができることについて何か提案はありますか?
ありがとう
編集
使用する WSDL ファイルがないことに注意してください。私が使用しているアプリケーションは、SOAP::Lite を使用した唯一のアプリケーションであり、WSDL を生成しないことがわかります。
@ e36M3 - 提案をありがとう。私はsoapUIについて聞いたことがありませんでした。取り付けて使ってみたところ、色々と使えそうなので、今後も参考にさせていただきます。残念ながら、それは WSDL テストを中心に構築されているようで、この特定の状況を考えると問題である WSDL を提供せずにテストする方法がわかりません。
これは、私のトレース ログからの関連データの一部です。無効な xml が終わるところから始まり、エラー情報で終わります。
System.Net Verbose: 0 : [5772] 000031E0 ;/map>.</data
System.Net Verbose: 0 : [5772] 000031E0 >. System.Net Verbose: 0 : [5772] 000031E0 esp1:MRWebServic
System.Net Verbose: 0 : [5772] 000031E0 es__getIssueDeta
System.Net Verbose: 0 : [5772] 000031E0 ilsResponse> System.Net Verbose: 0 : [5772] 1E000 AP-ENV:Body> System.Net Verbose: 0 : [5772] 000031E0 AP-ENV:Envelope>
System.Net Verbose: 0 : [5772] ConnectStream#15566556::Read() の終了 -> 12880#12880< br/ > System.Net Verbose: 0: [5772] ConnectStream#15566556::Read()
System.Net.Sockets Verbose: 0: [5772] Socket#20784002::Receive()
System.Net.Sockets Error: 0 : [5772] Socket#20784002::Receive の例外 - 接続先が一定時間後に適切に応答しなかったため、接続の試行が失敗したか、接続されたホストが失敗したために確立された接続が失敗しました応答
System.Net.Sockets Verbose: 0 : [5772] 終了 Socket#20784002::Receive() -> 0#0
System.Net.Sockets Verbose: 0 : [5772] Socket#20784002::Dispose()
System.Netエラー: 0 : [5772] HttpWebRequest#63722612 の例外:: - 基になる接続が閉じられました: 受信時に予期しないエラーが発生しました。System.Net Verbose: 0: [5772] ConnectStream#15566556::Close()
System.Net Verbose: 0: [5772] ConnectStream#15566556::Close() の終了