WCF元数据下载麻烦

时间:2014-12-03 00:52:01

标签: .net web-services wcf iis svcutil.exe

我在使用svcutil工具为我的应用程序创建WCF客户端库时出现以下错误。我可以在本地计算机上成功执行相同的操作,但不能在IIS服务器上执行相同的操作。

  

C:\ Program Files(x86)\ Microsoft Visual Studio 12.0> svcutil.exe   http://beanie.elasticbeanstalk.com/beanie/beanie.svc?wsdl Microsoft(R)服务模型元数据工具[Microsoft(R)   Windows(R)Communication Foundation,版本4.0.30319.33440]   版权所有(c)Microsoft Corporation。保留所有权利。

     

尝试从中下载元数据   ' http://beanie.elasticbeanstalk.com/   ?beanie_deploy / beanie.svc WSDL'运用   WS-Metadata Exchange或DISCO。 Microsoft(R)服务模型元数据   工具[Microsoft(R)Windows(R)Communication Foundation,Version   4.0.30319.33440]版权所有(c)Microsoft Corporation。保留所有权利。

     

错误:无法从中获取元数据   http://beanie.elasticbeanstalk.com/beanie_deploy/beanie.svc?wsdl

     

如果这是您的Windows(R)Communication Foundation服务   有加入,请检查您是否已启用元数据发布   在指定的地址。有关启用元数据发布的帮助   请参阅MSDN文档   http://go.microsoft.com/fwlink/?LinkId=65455

     

WS-Metadata Exchange错误       URI:http://beanie.elasticbeanstalk.com/beanie_deploy/beanie.svc?wsdl

Metadata contains a reference that cannot be resolved: 'http://beanie
     

.elasticbeanstalk.com / beanie_deploy / beanie.svc?WS   DL'

Content Type application/soap+xml; charset=utf-8 was not supported by servic e
     

http://beanie.elasticbeanstalk.com/beanie_deploy/beanie.svc?wsdl。客户端和服务绑定可能是   不匹配。

The remote server returned an error: (415) Cannot process the message becaus e the content type 'application/soap+xml;
     

的charset = UTF-8'不是预期的ty pe' text / xml;字符集= UTF-8' ..

     

HTTP GET错误       URI:http://beanie.elasticbeanstalk.com/beanie_deploy   洛伊/ beanie.svc?WSDL

The document was understood, but it could not be processed.
     

- WSDL文档包含无法解析的链接。      - 下载' http:// win-iu76ruu909k /beanie_deploy/beanie.svc?xsd=xsd0'时出错。      - 无法解析远程名称:' win-iu76ruu909k'

     

如果您需要更多帮助,请输入" svcutil /?"

如何开始修复它们?

  

编辑:web.config文件

     

<behaviors>
  <serviceBehaviors>
    <behavior name="NewBehavior0">
      <serviceMetadata httpGetEnabled="true" />
    </behavior>
  </serviceBehaviors>
</behaviors>

<services>
  <service behaviorConfiguration="NewBehavior0" name="Syncre_LayerAB_WebService.LayerAB_WebService">
    <endpoint address="" binding="basicHttpBinding"
        bindingConfiguration="" contract="Syncre_LayerAB_WebService.ILayerAB_WebService" />
  </service>
</services>
     

1 个答案:

答案 0 :(得分:1)

您的服务已正确配置为发布其元数据,但我怀疑问题出在IIS设置上。例如,可以将安全性配置为在您的服务使用匿名访问时使用Ntlm或基本身份验证。

那&#34; charset = utf-8&#39;不是预期的类型&text; xml&#39;&#34;错误表示IIS正在返回错误消息而不是元数据。尝试在浏览器中打开svc url(http://beanie.elasticbeanstalk.com/beanie/beanie.svc)以查看错误消息。

您可能还必须禁用IIS的自定义错误功能才能看到真正的错误消息,而不是通用错误消息。

<configuration>
  <system.web>
    <customErrors mode="Off" />
  </system.web>
</configuration>