WCF服务中的wsdl文件在哪里

Posted

技术标签:

【中文标题】WCF服务中的wsdl文件在哪里【英文标题】:Where is wsdl file in WCF service 【发布时间】:2011-11-07 19:26:59 【问题描述】:

我在本地创建了一个 WCF Web 服务,当我访问 wsdl 文件时(http://localhost/myservice/service.svc?wsdl 它显示 wsdl 文件就好了。然后我将它上传到由 GoDaddy 托管的虚拟服务器,当我调用 http://my ip地址:myport/service.svc?wsdl 结果是显示“您已创建服务”的页面。当我调用相同的 url 但没有 ?wsdl(http://my ip 地址: myport/service.svc)。我怎样才能在虚拟服务器上获取我的 wsdl 文件?为什么这与我的本地机器不同?

【问题讨论】:

服务器上的配置文件和开发机器上的配置文件一样吗? 【参考方案1】:

确保您在托管环境中的配置文件允许检索 WSDL 文档。它应该包含:

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

并在您的服务配置中引用此行为。

编辑:

只是为了说清楚。使用默认的 WCF 行为,WSDL 文件不存在。它是自动生成的,必须允许这种自动生成。

【讨论】:

好的,这是自动生成的,但它必须保存在某个地方,至少暂时... 虽然应该很明显,但行为元素需要关闭。我无法编辑帖子,因为它包含的更改太少。

以上是关于WCF服务中的wsdl文件在哪里的主要内容,如果未能解决你的问题,请参考以下文章

下载 WCF 服务公开的所有 WSDL 文件的最佳方法是啥?

下载 WCF 服务公开的所有 WSDL 文件的最佳方法是啥?

如何从现有的 WSDL 和 XSD 文件生成 WCF 服务主机

WCF 生成的 wsdl 与为创建 WCF 服务而提供的原始 wsdl 不同?

能否结合来自 WCF 服务的 WSDL 和 XSD 数据?

如何从C#中的URL读取WCF服务的WSDL