请求因空响应而失败。在Loadbalancer后面调用ASMX服务

时间:2016-04-19 06:09:06

标签: c# web-services ssl soap wsdl

我有一个在HTTPS中启用了Loadbalancer的网络服务。外部URL如下所示:

  

https://www.domain.com/webservice.asmx?wsdl

从Loadbalancer为此Web服务禁用HTTP,负载均衡器将所有HTTP请求转换为HTTPS。

当我尝试使用SoapUI或从应用程序使用它并运行时,它会抛出错误请求失败且响应为空。

现在,当我在WSDL中检查SoapAddress时,它是HTTP而不是HTTPS。我将所有内容都更改为HTTPS。即使这样,我也会遇到同样的错误。

经过大量研究,我尝试使用Fiddler捕获流量并发现一些奇怪的东西。当从applicaiton或SoapUI调用该方法时,协议是HTTP,结果是Fiddler中的302.这必然是它失败的原因。

  

现在,可以做些什么来正常运行HTTPS?为什么呢   即使从浏览器无法调用它,也会转换为HTTP   使用HTTP,我使用https://xyz ...

使用了服务

1 个答案:

答案 0 :(得分:0)

您需要确保客户端使用的绑定具有安全模式=" Transport"设置(以及客户端绑定与服务器绑定匹配),例如:

<binding name="yourClientSecureBinding">
    <security mode="Transport">
        <transport clientCredentialType="None"/>
    </security>
</binding>

并且客户端确实访问了Web服务的httpS://地址:

<client>
    <endpoint bindingConfiguration="yourClientSecureBinding" 
              address="https://..."  
              ... />
</client>

你没有提供任何代码,所以对于初学者来看看这些帖子:这里(微软开发者网络 - 带有匿名客户端的传输安全性)和这里(带有BasicHTTPBinding的Https)。

基于Link

相关问题