在IIS 7中部署WCF Web服务 - 获取错误

时间:2012-10-12 00:36:50

标签: asp.net wcf web-services

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

网址https://www.nameofsite.net/service.svc?wsdl处的文档未被识别为已知文档类型。 每种已知类型的错误消息可以帮助您解决问题: - 来自'XML Schema'的报告是'文档格式无法识别(内容类型为'text / html; charset = UTF-8')。'。 - 来自'https://www.nameofsite.net/service.svc?wsdl'的报告是'文件格式无法识别(内容类型为'text / html; charset = UTF-8')。'。 - 来自“DISCO文档”的报告是“无法找到网址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,但是没有用。我看到有很多关于肥皂1.1没有与肥皂1.2沟通的讨论,但是我太新了,甚至不按照我看到的说明。请帮忙。感谢。

1 个答案:

答案 0 :(得分: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 vs MEX