2011-05-31 53 views
1

我正在開發一個Windows Phone 7應用程序,我需要在我們公司的REST API上添加一些數據。爲什麼C#.NET WebException未被WP7仿真器捕獲?

我正在測試這個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(); 
} 
+0

它在真實設備上工作嗎?仿真器不能100%信任。 – 2011-05-31 20:58:17

+0

不幸的是,仍然在等待設備+ AppHub帳戶通過。我會測試這個問題並在我們得到它時更新這個問題。同時,我想知道是否有其他人遇到過這種情況,並可能找到解決辦法。 – 2011-05-31 21:07:00

+0

只是一個側面說明。遠程服務器返回錯誤。 NotFound'錯誤消息並不一定意味着錯誤是由於找不到服務器而導致的。可能還有其他原因,可能會在別處拋出。 – keyboardP 2011-05-31 21:07:50

回答

相關問題