2013-06-28 206 views
0

我使用的代碼一個WebRequestWebRequest的瞬間拋出「無法連接到遠程服務器」

bool error = false; 
WebException exc = null; 
statusText.Text = "Starting"; 
String urlRequest = "http://****PRIVATER URL****/CC/runCode.php?lang="; 
urlRequest += global.language; 
urlRequest += "&code="; 
urlRequest += Uri.EscapeDataString(global.codeString); 
statusText.Text = "Requesting"; 
webRequest = WebRequest.Create(urlRequest); 
webRequest.Proxy = null; 
//webRequest.BeginGetResponse(new AsyncCallback(webRequestDone), null); 

try 
{ 
    using (resp = await webRequest.GetResponseAsync()) 
    { 
     //TODO get this working! 
    } 
} 
catch (WebException e) 
{ 
    error = true; 
    exc = e; 
} 
if (error) 
{ 
    await new Windows.UI.Popups.MessageDialog(exc.Message).ShowAsync(); 
} 

的Web服務器進行訪問,而無需使用代理。如果我得到一個try catch條款之外的響應,它運行得很好,象下面這樣:

bool error = false; 
       WebException exc = null; 
       statusText.Text = "Starting"; 
       String urlRequest = "http://****PRIVATE URL****/CC/runCode.php?lang="; 
       urlRequest += global.language; 
       urlRequest += "&code="; 
       urlRequest += Uri.EscapeDataString(global.codeString); 
       statusText.Text = "Requesting"; 
       webRequest = WebRequest.Create(urlRequest); 
       webRequest.Proxy = null; 
       //webRequest.BeginGetResponse(new AsyncCallback(webRequestDone), null); 
       resp = await webRequest.GetResponseAsync(); 
+1

我不認爲我們有足夠的信息來回答這個問題。連接到遠程服務器可能會失敗的原因有很多,無論是您的防火牆,您所使用的任何代理服務器,還是最有可能的服務器或其所在的任何網絡設備是否拒絕連接。 – Jacob

+0

如果我刪除'try catch',我可以很好地訪問服務器。 「try catch」有什麼問題嗎? – Sirens

+0

當你移除try/catch時你仍然調用'GetResponseAsync'?不,try/catch會改變行爲是沒有意義的。 – Jacob

回答

0

貌似我想通了。原來我沒有訪問私人網絡。所以當我在我的本地網絡上時,它總是失敗。我不得不將它添加到app.appxmanifest中的Capabilities下。

相關問題