我使用C#和Visual Studio 2012来开发WP8应用程序。我为我的项目添加了一个服务引用(添加服务引用)。所以我可以使用webservice函数。
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
}
我为getData()
设置了500毫秒的超时限制;如果超过时间限制,则会出现以下错误:
“对'http://example.com/webService/index?ws=1'的HTTP请求有 超过分配的超时。分配给此操作的时间可能 是超时的一部分。“
这很好:)但是,我想知道抛出了什么样的异常。类似于包含字符串“TimeoutException
”的字符串变量的东西会很好。我该如何实现呢?
答案 0 :(得分:3)
您可以使用
if( e.Error is TimeoutException )
查看Exception是否为TimeoutException类型
答案 1 :(得分:1)
这不是来自服务器的http响应包含错误描述,而不是.net异常吗?
e.Error类是否具有“Message”以外的任何其他属性?如果服务器也是.net,那么您可能能够匹配异常类型,但如果它不是.net则它们将不对应。
如果返回了错误代码,我只会使用它,或者只是搜索“超出分配的超时时间”的文本,以确认它是超时异常。