【问题标题】:Consuming a HTTPS Web Service in .Net 3.5 Web Project在 .Net 3.5 Web 项目中使用 HTTPS Web 服务
【发布时间】:2011-02-23 15:07:05
【问题描述】:

我正在尝试使用仅在 HTTPS 上运行的 Web 服务,但使用 VS 中的“添加服务”方法或使用 WSDL 生成代码文件给我留下了一个声明其 http 的 Web 服务...

  <wsdl:service name="OGServ"> 
    <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">XML Web Services element of OGServ Gateway</wsdl:documentation> 
    <wsdl:port name="OGServSoap" binding="tns:OGServSoap"> 
      <soap:address location="http://ogserv.domain.co.uk/ogwsrv/og.asmx" /> 
    </wsdl:port> 
    <wsdl:port name="OGServSoap12" binding="tns:OGServSoap12"> 
      <soap12:address location="http://ogserv.domain.co.uk/ogwsrv/og.asmx" /> 
    </wsdl:port> 
  </wsdl:service> 

这是否是即使我将 app.config(由 add-service 生成)端点地址更改为 https 时,它仍说它期待 HTTP 的原因?

错误:

EC.Tests.OGGatewayLayerTest (TestFixtureSetUp):
System.ArgumentException : The provided URI scheme 'https' is invalid; expected 'http'.
Parameter name: via

【问题讨论】:

    标签: c# .net-3.5 soap wcf


    【解决方案1】:

    当您将 Web 服务添加到您的项目时,请使用“https”URI 方案。这将生成一个具有正确位置属性的 WSDL 文件。类似这样的事情:

    https://ogserv.domain.co.uk/ogwsrv/og.asmx?WSDL

    如果您手动编辑 WSDL,那么当您在 Visual Studio 中使用“更新服务”选项时,您的更改将被覆盖。

    【讨论】:

    • 我最初使用 https 添加服务://ogserv.domain.co.uk/ogwsrv/og.asmx?WSDL WSDL 文件包含上面显示的代码,它位于 HTTP:// . HTTP:// 地址中没有任何内容,仅作为其 HTTPS。因此,当代码尝试访问代理时会引发错误。
    • 如果您将 URL 粘贴到 Internet Explorer 中。你得到了什么?
    • 如果我将 http:// 域粘贴到我的域中,我将得到错误域作为其 HTTPS。 “糟糕!Google Chrome 无法连接到 etc”+ 抱歉回复缓慢
    • 实际上,我的意思是用 HTTPS 粘贴它,如 ogserv.domain.co.uk/ogwsrv/og.asmx?WSDL。您应该在服务地址中获得一个带有 HTTPS 位置的 WSDL 文件。如果没有,那么我会研究如何创建 Web 服务。
    • 我会把它标记为正确答案;我已经向编写它的白痴外包(印度)公司提交了一个错误。测试环境都是http的……感觉自己没想到也懒得去测试。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-06
    • 2010-10-19
    • 1970-01-01
    • 2013-05-15
    • 1970-01-01
    • 1970-01-01
    • 2012-10-27
    相关资源
    最近更新 更多