如何将正确的schemaLocation放入我的WCF服务的WSDL中?

时间:2012-04-20 16:35:38

标签: wcf web-services wcf-binding

我编写了一个简单的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上的MSDN文档:https://domain/ServiceRoute?wsdl元数据包含无法解析的引用:'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'

我不知道该怎么做。我需要更改服务器设置吗?或者我可以更新我的绑定以明确使用schemaLocation的{​​{1}}吗?

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

1 个答案:

答案 0 :(得分:0)

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

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

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