0

に接続している古い .NET 2.0 アプリがありasmx web serviceます。Web サービスをデバッグする必要がありますが、ローカルで実行すると常に400 - Bad Request response. Web サービスのトレースにより、もう少し詳細がわかりました。スローされた例外はRoot element is missing. 次に、Fiddler でトラフィックをキャッチしようとしましたが、アプリがプロキシを localhost:8888 に強制した場合でも、トラフィックをキャッチできないようです。そこで、ここからのアイデアを使用して、SOAP メッセージをログに記録しました。しかし、結果は驚くべきものでした。まさにこのサービスについてログに記録された SOAP メッセージは空白でした。他の Web サービスでは、この方法が機能します。

この動作を引き起こす可能性のあるアイデア、またはそれを追跡するにはどうすればよいですか? 私が今持っている唯一のアイデアは、WireSharkで石鹸メッセージが空白であることを確認することです...

4

2 に答える 2

0

今日、この問題をもう一度見てみる時間があり、興味深いことがわかりました。Web サービスの web.config ファイルで、Web サービスが使用するディレクトリのパスが宣言されていましたが、パスの 1 つが存在しませんでした。400 の不正な要求応答を返すメソッドでは使用されませんでしたが、ディレクトリ パスを存在するものに修正した後、不正な要求の問題は解消されました。ご協力いただきありがとうございます。

于 2013-04-18T16:38:33.777 に答える
0

400 - Bad Requestリクエストを解析できないため、エラーが発生します。空のメッセージであるため解析できません。そのためRoot element is missing、XML パーサーがメッセージを読み込もうとするとエラーが発生します。サービスに送信するメッセージが空でないことを確認します。

于 2013-04-03T12:08:43.730 に答える