ASMX Web服务的自定义WSDL

4

能否在.NET WebService中使用自定义WSDL?我想使用自己的自定义WSDL而不是由.NET作为WebService生成的WSDL。

2个回答

8
实际上有一种方法可以做到这一点: 您可以创建自己的WSDL(即删除不想发布的方法),然后将其提供在一个专用位置,让用户像正常绑定一样绑定它。
为了防止用户只检索默认的WSDL( foo.asmx?wsdl ),您必须在Web服务的web.config中切换开关:
  <webServices>
    <protocols>
      <remove name="Documentation"/>
    </protocols>
  </webServices>

根据MSDN相关部分的说明:

注意:移除文档协议还会禁用Web应用程序中任何XML Web服务的WSDL文件生成。这会阻止客户端生成代理类,除非提供自定义的WSDL文件。


0

我猜想你想要的是替换.NET生成的文件,当服务被带着“?wsdl”查询字符串访问时。

不,没有直接的方法可以做到这一点。相反地,只需将您的 .wsdl 放在网站上,并告诉您的服务使用者从那里获取它。没有标准规定“?wsdl”是获取WSDL文件的唯一方式。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接