2014-04-02 19 views
0

我的簡單的Windows應用商店有問題。Windows 8.1應用程序 - HttpWebRequest只能工作一次

我連接到SharePoint並查詢他的REST服務以獲取我需要的信息。實際上,我想創建一種「SharePoint瀏覽器」,以便用戶可以導航使用APP瀏覽SharePoint的列表結構。

其實我從SharePoint獲取安全令牌,並在所有調用中使用它沒有任何問題。

我的電話是一樣的東西:

var bldr = new UriBuilder(_uri.ToString()); 
bldr.Path += _listDataSvc + (String.IsNullOrEmpty(path) ? String.Empty : "/" + path); 
var request = HttpWebRequest.CreateHttp(bldr.Uri); 
request.Method = "GET"; 
request.CookieContainer = _cookieContainer; 
var response = await request.GetResponseAsync(); 

這讓我回我需要什麼。但只有一次!如果我得到這些數據,將它們展示給用戶,並且用戶執行再次調用相同過程的操作,則系統會在GetResponseAsync()中進行查找並且不會引發異常或其他情況。

該系統的工作,即使我用同樣的Cookie和URL以同樣的方式...

可能是什麼問題呢?我試圖找出與提琴手,但一切都在HTTPS,所以我可以看到應用程序再次發送請求,但沒有收到任何答案。

+0

拋出了什麼異常?來自哪裏?你有嘗試過使用HttpClient嗎? –

+0

沒有任何異常..只是「等待」需要很多時間,以至於應用程序崩潰。 –

+0

您應該查看[HttpClient](http://msdn.microsoft.com/zh-cn/library/windows/ apps/windows.web.http.httpclient)類從WinRT(Windows.Web.Http命名空間)。這是在Windows 8.1上執行Web請求的首選方法。更多信息[這裏](http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh761504.aspx)和[這裏](http://kraigbrockschmidt.com/blog/?p= 963)。 – cremor

回答

1

我找出問題是:

某處我用等的指令的代碼:

變種X = request.GetResponseAsync()結果;代替

變種響應=等待request.GetResponseAsync();

有很多的調用,系統達到了一種死鎖狀態,因爲每一個其他的WebService調用正在等待前一個。