SVC WebService通过HTTP进行工作,通过HTTPS进行故障

问题描述:

我的一位同事遇到了对.NET WebService的AJAX调用问题。该调用在HTTP下工作,但同一个调用在HTTPS下有问题。 Web服务在IIS 4.0服务器上用C#编写。SVC WebService通过HTTP进行工作,通过HTTPS进行故障

安全的网站是https://sql.data-rx.com/grouppharmdrugsearch/。在http://sql.data-rx.com/grouppharmdrugsearch/有一个不安全的版本。页面本身没有任何敏感信息。它是嵌入的(我相信框架)在客户端的网站上使用HTTPS,我们的页面需要使用HTTPS,因此浏览器不会给出混合的安全/不安全的元素显示消息。

要测试网站上的问题,您首先必须在第二个文本框中输入邮政编码(我一直使用90210进行测试),然后您可以将第一个药物字母输入第三个文本框。在等待一秒钟左右的额外信件后,页面会调用Web服务来填充从所提供的字母开始的可能药物选择的下拉列表。安全的webservice调用是https://sql.data-rx.com/grouppharmdrugsearch/Service/drugNameAutocomplete.svc/GetDrugList,POST数据为'prefixText'和'count'。在HTTP下,服务调用成功并填充下拉列表;在HTTPS下,调用会收到404错误。如果您将浏览器指向https://sql.data-rx.com/grouppharmdrugsearch/Service/drugNameAutocomplete.svc,但HTTPS Web服务可以访问,但该方法在追加到服务时无法识别。

我一直在使用Firefox的防篡改数据插件来比较服务调用,并且它们看起来完全一样,除了一个是HTTPS站点,一个是HTTP站点,并且引用程序正确更改。 HTTPS调用接收到404错误,而HTTP调用接收到JSON数据。

我相信可能会有一些东西从web服务中缺失,这将允许调用在HTTPS下运行(尽管我想不出任何在这种情况下应该重要的),或者HTTPS网站本身在配置错误时它被设置。任何帮助,将不胜感激。

我们终于想出了从this site的解决方案。基本上,绑定仅配置为HTTP,而不是HTTPS,我们需要创建一个自定义绑定以允许web服务通过HTTPS运行。

+0

它的工作很好!只需添加绑定块并设置属性。 TNX男子;) – 2014-01-26 22:18:17