ASMX Web服务的自定义WSDL

时间:2011-01-28 23:47:28

标签: c# web-services wsdl asmx

是否可以将自定义WSDL与.NET WebService一起使用?我想在.NET WebService中使用自定义WSDL,而不是.NET生成的自定义WSDL作为WebService的一部分。

2 个答案:

答案 0 :(得分:8)

实际上有一种方法可以做到这一点: 您可以创建自己的WSDL(即删除您不想发布的方法),然后在专用位置使其可用,这样用户就可以正常绑定它。

为了防止用户只是检索默认的WSDL(foo.asmx?wsdl),您必须在Web服务的web.config中翻转一个开关:

  <webServices>
    <protocols>
      <remove name="Documentation"/>
    </protocols>
  </webServices>

来自relevant MSDN section

  

注意删除文档   协议还禁用WSDL文件   生成任何XML Web服务   在Web应用程序中。这个   阻止客户端生成   代理类除非是自定义WSDL文件   是为他们创造和提供的。

答案 1 :(得分:0)

我认为你想要的是当你的服务被命中时使用“?wsdl”查询字符串来替换.NET生成的文件。

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