为什么WP7模拟器中没有捕获C#.NET WebException?

为什么WP7模拟器中没有捕获C#.NET WebException?,c#,.net,rest,windows-phone-7,httpwebrequest,C#,.net,Rest,Windows Phone 7,Httpwebrequest,我正在开发一个WindowsPhone7应用程序,我需要在我们公司的RESTAPI上添加一些数据 我在测试这个API调用时,遇到了一个无法捕获的WebException。我的调用最初是在lambda中进行的,所以我将它拉到了成员函数中,但仍然没有成功 错误字符串为“远程服务器返回错误:NotFound”。这并不意外,我的应用程序尝试的URI可能无效,因为我搞砸了,或者因为我们的暂存服务器关闭了 如果我无法捕获此异常,我该如何检查请求是否失败 以下是我的玩具示例: void TriggerApiC

我正在开发一个WindowsPhone7应用程序,我需要在我们公司的RESTAPI上添加一些数据

我在测试这个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堆栈


它在真正的设备上工作吗?无法100%信任模拟器。遗憾的是,仍在等待设备+AppHub帐户通过。我将测试这个问题,并在得到它后更新这个问题。与此同时,我想知道是否有其他人遇到过这种情况,并且可能找到了解决办法。只是一个旁注。远程服务器返回了一个错误。NotFound错误消息并不一定意味着错误是由于找不到服务器而导致的。可能还有其他原因,可能被抛出到其他地方。@bearcdp:您是否已将网络功能添加到WMAppManifest.xml中?请重新阅读您的评论。仅支持
GET
POST
方法: