1

私はasmx エンドポイントを与えられましたが、良いか悪いか、メソッドは何も返しません:

を使用しsvcutil.exeてプロキシと構成を生成した後、サービスを呼び出してメソッドを次のように実行します。

// connect
WinnerSiteServiceSoapClient client = new WinnerSiteServiceSoapClient();
// send
client.CreateCompetitor("1", "2", "3", "4", "5", 6);
// disconnect
client.Close();

しかし、CreateCompetitorサービスのドキュメントにあるように、メソッドは を返します。メソッドが正常に呼び出され、応答されたことを確認するにはどうすればよいですかvoid?

Fiddlerを起動すると、HTTP 200応答が返されることがわかりますが、これをプロキシ オブジェクトから取得するにはどうすればよいでしょうか。

4

1 に答える 1

0

一言で言えば、例外がないということは、リクエストが成功したことを意味します。

プロキシ クラスは、ご存じのとおり、サービスへのリクエスト送信の HTTP 部分を抽象化します。これは、サーバーから返された HTTP ステータスに対応するプロパティが見つからないことも意味します (生成されたプロキシ クラスを微調整しない限り)。

プロキシ クラスを介してその void WebMethod を呼び出し、呼び出しが失敗しない場合、それはサーバーによって正常に受信されたことを意味します。サーバーが例外をスローした場合 (おそらく、一部のパラメーターが無効であることを伝えます。ただし、false またはそう言う XML を返す必要がありますが、それは設計上の問題です)、呼び出しは System.ServiceModel.FaultException で失敗します。

ネットワークに問題があり、リクエストが何らかの理由でサーバーに到達しなかった場合は、System.ServiceModel.EndpointNotFoundException という例外も発生します。

これらの例外はどちらも、HTTP を処理するプロキシ クラスによって発生します。

于 2012-09-07T09:41:38.577 に答える