1

我使用 C# 和 Visual Studio 2012 开发 WP8 应用程序。我为我的项目添加了一个服务引用(添加服务引用)。所以我可以使用网络服务功能。

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 )

查看 Exception 是否属于 TimeoutException 类型

于 2013-01-06T00:24:41.870 回答
1

这不是更多来自服务器的http响应包含错误描述,而不是.net异常吗?

e.Error 类是否具有除“消息”之外的任何其他属性?如果服务器也是 .net,那么您可能能够匹配异常类型,但如果它不是 .net,它们将不对应。

如果返回错误代码,我会使用它,或者只是搜索文本“超过分配的超时”,以确认它是超时异常。

于 2013-01-06T00:41:11.977 回答