0

我正在尝试将 VS 2010 中的服务引用添加到我在 Server 2008/IIS7 服务器上的 WCF Web 服务中。我将服务放入现有/正在运行的 ASP.NET 站点中。当我输入服务的 url 时,它会出现标准服务屏幕,但是当我尝试添加对我正在开发的新网站项目的引用时,我收到以下错误。

网址为https://www.nameofsite.net/service.svc?wsdl的文档未被识别为已知文档类型。来自每种已知类型的错误消息可能会帮助您解决问题: - 来自“XML 架构”的报告是“无法识别文档格式(内容类型为 'text/html; charset=UTF-8')。”。- 来自“https://www.nameofsite.net/service.svc?wsdl”的报告是“无法识别文档格式(内容类型为 'text/html; charset=UTF-8')。”。- 来自“DISCO 文档”的报告是 URL https://www.nameofsite.net/Service.svc?disco上的“发现文档”找不到。- 无法识别文档格式。- 来自“WSDL 文档”的报告是“无法识别文档格式(内容类型为 'text/html; charset=UTF-8')。”。元数据包含无法解析的引用:“https://www.nameofsite.net/service.svc?wsdl”。在https://www.nameofsite.net/service.svc?wsdl上没有可以接受消息的端点监听。这通常是由不正确的地址或 SOAP 操作引起的。有关更多详细信息,请参阅 InnerException(如果存在)。远程服务器返回错误:(404) Not Found。如果在当前解决方案中定义了服务,请尝试构建解决方案并再次添加服务引用。

我尝试将 mime 类型 svc 添加到 IIS,但没有奏效。我看到有很多关于soap 1.1 不与soap 1.2 通信的讨论,但我对此太陌生,甚至无法按照我所看到的说明进行操作。请帮忙。谢谢。

4

1 回答 1

1

服务是否发布其元数据?检查服务的 web.config 文件中的 httpsGetEnabled 标志:

<behaviors>
 <serviceBehaviors>
  <behavior name="NewBehavior">
    <serviceMetadata httpsGetEnabled="true" 
     httpsGetUrl="https://myComputerName/myEndpoint" />
  </behavior>
 </serviceBehaviors>
</behaviors>

有关这些标签的更多信息:ServiceMetaData

您可能还需要在 web.config 中为服务配置此端点:

<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />

更多背景知识: Web.Config

WSDL 与 MEX

于 2012-10-12T01:03:33.233 回答