1

C# と Visual Studio 2012 を使用して WP8 アプリケーションを開発しています。プロジェクトにサービス参照を追加しました (サービス参照の追加)。したがって、Webサービス機能を使用できます。

client = new YChatWebService.WebServiceControllerPortTypeClient();

client.getDataCompleted += client_getDataCompleted;
client.InnerChannel.OperationTimeout = new TimeSpan(0, 0, 0, 0, 500);
client.getDataAsync(); 

void client_getDataCompleted(object sender, getDataCompletedEventArgs e)
{
    // e.Error.Message

}

のタイムアウト制限を 500 ミリ秒に設定しましたgetData()。制限時間を超えると、次のエラーが発生します。

「'http://example.com/webService/index?ws=1' への HTTP リクエストが、割り当てられたタイムアウトを超えました。この操作に割り当てられた時間は、より長いタイムアウトの一部であった可能性があります。」

それはいいですね:)しかし、どのような例外がスローされたかを知りたいです。文字列 " " を含む文字列変数のようなものTimeoutExceptionがいいでしょう。どうすればそれを達成できますか?

4

2 に答える 2

3

あなたが使用することができます

if( e.Error is TimeoutException )

例外がタイプ TimeoutException であるかどうかを確認するには

于 2013-01-06T00:24:41.870 に答える
1

これは、サーバーからのhttp応答に、.net例外ではなく、エラーの説明が含まれているということではありませんか?

e.Errorクラスには「メッセージ」以外のプロパティがありますか?サーバーが.netでもある場合は、例外タイプを一致させることができる可能性がありますが、.netでない場合は、対応しません。

エラーコードが返された場合は、これを使用するか、「割り当てられたタイムアウトを超えました」というテキストを検索して、タイムアウト例外であることを確認します。

于 2013-01-06T00:41:11.977 に答える