2011-12-27 108 views
5

從aspx頁面調用託管在服務器中的Web服務時,出現「請求失敗,返回空值」等錯誤。「調用Web服務時請求失敗,返回空」

代碼在我的網頁

try { 
    HttpWebRequest request1 = (HttpWebRequest)WebRequest.Create("https://login.erp.com/rodeprovisioning/provisioning.asmx"); 
    request1.Accept = "text/xml"; 
    request1.Method = "POST"; 
    WebProxy proxyObject = new System.Net.WebProxy("http://10.0.0.1:8080/", true); 
    request1.Proxy.Credentials = CredentialCache.DefaultCredentials; 
    string sReturnValue = null; 
    if (string.IsNullOrEmpty(Session["Test"])) { 
     sReturnValue = callservice(); 
     if (sReturnValue == "Success") { 
      ErrorLabel.Text = sReturnValue; 
      Session["Test"] = "True"; 
     } else { 
      ErrorLabel.Text = sReturnValue; 
     } 
    } 

} catch (Exception ex) { 

} 

,並在web.config中

<system.net> 
    <authenticationModules> 
     <add type = "System.Net.DigestClient" /> 
     <add type = "System.Net.NegotiateClient" /> 
     <add type = "System.Net.KerberosClient" /> 
     <add type = "System.Net.NtlmClient" /> 
     <add type = "System.Net.BasicClient" /> 
    </authenticationModules> 
    <connectionManagement> 
     <add address = "*" maxconnection = "2" /> 
    </connectionManagement> 
    <defaultProxy> 
     <proxy usesystemdefault="True" bypassonlocal = "True" /> 
    </defaultProxy> 
    <webRequestModules> 
     <add prefix = "http" type = "System.Net.HttpRequestCreator"  /> 
     <add prefix = "https" type = "System.Net.HttpRequestCreator"  /> 
     <add prefix = "file" type = "System.Net.FileWebRequestCreator"   /> 
    </webRequestModules> 
    </system.net> 

它是一個防火牆problem.Any建議?

+1

您是否嘗試過使用Wireshark來了解HTTP級別發生了什麼? – 2011-12-27 08:18:23

+0

沒有我沒有... – bala3569 2011-12-27 08:22:36

+4

然後我建議,應該是你的下一步。嘗試調試客戶端是沒有意義的,如果它是服務器端問題,反之亦然。 – 2011-12-27 08:30:47

回答

15

我知道這是一個老問題,但我們有同樣的異常在我們的集成環境之一發生:

System.Net.WebException: The request failed with an empty response 

的問題是,當我們升級了服務器硬件,我們還交換了我們所有的端點將使用HTTPS。調用端點的代碼未升級,因此它仍使用常規HTTP。顯然這是你嘗試以HTTP方式調用HTTPS服務時得到的異常。希望這可以幫助某個人。

+0

它幫助我2年後!謝謝! – UrsulRosu 2016-06-29 11:24:57

-2

在客戶端app.config或web.config中,首先檢查Web服務URL,如果您的Web服務URL具有安全套接字層證書,則將相同的安全套接字層URL啓用爲app.config或web.config。像這樣的「https://crm.XXXX.com/webServiceName.asmx

System.Net.WebException:請求的空響應

4

我想補充一下Andacious表示失敗。我正在調用一個https服務,但是當我查看調用對象的屬性時,它實際上是使用http。所以我專門設置了URL屬性。

我有一個叫做互換的類,它繼承自SoapHttpClientProtocol。

interchangeWS = new InterchangeWS(); 
interchangeWS.Url = "https://somesite/interchange.asmx"; 

string x = interchangeWS.SomeMethod("someParameter"); 
相關問題