调用Web服务时“请求失败并显示空响应”

从aspx页面调用托管在服务器中的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中

                     

这是防火墙问题。有什么建议吗?

我知道这是一个老问题,但我们在其中一个集成环境中遇到了同样的exception:

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

问题在于,当我们升级服务器硬件时,我们还将所有端点切换为使用HTTPS。 调用端点的代码未升级,因此它仍然使用常规HTTP。 显然,这是您尝试将HTTPS服务作为HTTP调用时获得的exception。 希望这可以帮助有人下线。

我想补充一下Andacious说的话。 我正在调用一个https的Web服务,但当我查看调用它的对象的属性时,它实际上是使用http。 所以我专门设置了URL属性。

我有一个名为interchange的类,它inheritance自SoapHttpClientProtocol。

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

有时在指向LoadBalancer下的端点时会发生这种情况,一旦您使用HTTPS添加对项目的引用(在VisualStudio中),然后检查子项下的app.config文件并查看端点URL是否设置为HTTP,然后手动将其更新为HTTPS,你应该很好。 希望能帮助到你。

确保该服务是https而不是web.config文件中的http.Place https

在客户端app.config或web.config中,首先检查Web服务URL,如果您的Web服务URL具有安全套接字层证书,则将相同的安全套接字层启用URL添加到app.config或web.config。 像这样的“ https://crm.XXXX.com/webServiceName.asmx

System.Net.WebException:请求失败,返回空