为什么在WP7仿真器中没有捕获C#.NET WebException?

问题描述

| 我正在开发Windows Phone 7应用,我需要在我们公司的REST api上放置一些数据。 我正在测试此API调用,并遇到了我无法捕获的WebException。我的呼叫最初是在lambda中进行的,因此我将其拉入成员函数,但仍然没有运气。 错误字符串为“远程服务器返回错误:NotFound”。这并非意外,我的应用尝试使用的URI可能无效,因为我搞砸了,或者因为我们的登台服务器已关闭。 如果无法捕获此异常,我应该如何检查请求是否失败? 这是我的玩具示例:
void TriggerApiCall()
{
    var request = HttpWebRequest.Create(new Uri(
        \"http://api.ourcompany.com\" +
        \"/stuff/\" +
        someParameterizedPath + \"?\" +
        \"firstParam=\" + someClassMember +
        \"&secondParam=8badf00d\"));

    request.Method = \"PUT\";
    request.BeginGetResponse(TryCall,request);
}

private void TryCall(IAsyncResult result)
{
    HttpWebRequest request = result.AsyncState as HttpWebRequest;
    var completed = result.IsCompleted;
    WebResponse response = null;
    try {
        bool hasresp = request.HaveResponse;
        response = request.EndGetResponse(result);
    } catch (Exception e) {
        System.Diagnostics.Debug.WriteLine(e); // Never reaches here,// Exception propagates to top
    }
    response.Close();
}
    

解决方法

        研究表明,Silverlight 3及更高版本中有一个新的ClientHttp堆栈。 http://msdn.microsoft.com/zh-cn/library/dd920295(v=vs.95).aspx     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...