【问题标题】:How do I get the correct schemaLocation into my WCF service's WSDL?如何将正确的 schemaLocation 放入我的 WCF 服务的 WSDL?
【发布时间】:2012-04-20 16:35:37
【问题描述】:

我编写了一个简单的 WCF Web 服务,我试图通过网站公开它。

我将网站(在 web.config 中有服务引用和绑定)上传到服务器,我可以使用 https://domain/ServiceRoute?wsdl 浏览到 wsdl。

WSDL 显示 schemaLocation 的路径不正确。

然后我尝试使用 WCF 测试客户端来测试服务。 WCF 测试客户端给我以下错误:

错误:无法从https://domain/ServiceRoute?wsdl 获取元数据如果这是您有权访问的 Windows (R) Communication Foundation 服务,请检查您是否已在指定地址启用元数据发布。有关启用元数据发布的帮助,请参阅位于 http://go.microsoft.com/fwlink/?LinkId=65455.WS-Metadata Exchange 错误 URI:https://domain/ServiceRoute?wsdl 元数据包含无法解析的引用的 MSDN 文档:“https://domain/ServiceRoute?wsdl”。 Sendera:ActionNotSupported由于 EndpointDispatcher 的 ContractFilter 不匹配,接收方无法处理带有 Action 'http://schemas.xmlsoap.org/ws/2004/09/transfer/Get' 的消息。这可能是因为合约不匹配(发送方和接收方之间的操作不匹配)或发送方和接收方之间的绑定/安全不匹配。检查发送方和接收方是否具有相同的合同和相同的绑定(包括安全要求,例如消息、传输、无)。HTTP GET 错误 URI:https://domain/ServiceRoute?wsdl 文档已被理解,但无法处理。 - WSDL 文档包含无法解析的链接。 - 下载“https://incorrectSchemaLocation/ServiceRoute?xsd=xsd0”时出错。 - 无法解析远程名称:'IncorrectSchemaLocation'

我不知道该怎么办。我需要更改服务器设置吗?或者我可以更新我的绑定以明确使用https://domain/ServiceRouteschemaLocation 吗?

另外,请注意,当我浏览到 wsdl 时,我没有收到 ssl 证书错误。我不知道这是否有帮助。

【问题讨论】:

    标签: wcf web-services wcf-binding


    【解决方案1】:

    我可以通过使用命令行实用程序更改 Web 服务器的配置来解决此错误:

    cscript.exe adsutil.vbs set /w3svc/<site identifier>/SecureBindings ":443:<host header>"
    

    &lt;site identifier&gt; 是 IIS 站点标识符,&lt;host header&gt; 是用于从外部访问服务的 URL(即:subdomain.domain.com。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多