我想在.NET 3.5中构建一个支持SOAP的C#服务,并显示WSDL和REST。使单个WCF服务同时支持SOAP,REST和WSDL
SOAP服务和WSDL生成很容易使用ServiceHost
和BasicHttpBinding
类。得到这个工作,客户很高兴。
因为SOAP调用所有使用的简单参数,所以客户端开发人员为某些命令请求了一个REST接口。因此,我将ServiceHost类更改为WebServiceHost
,添加了必要的WebInvoke
和WebGet
属性,添加了WebHttpBinding
类,并且宾果 - REST和SOAP都在使用一种服务。很酷,改变一个界面,REST和SOAP都得到了新的东西。
但是有一个问题 - WSDL不再生成。我无法浏览到http://server/service?wsdl并获取WSDL文件。检查MSDN文档,似乎是默认WebServiceHost
的行为。
问题:我可以重写此行为以便可以获取WSDL吗?不必像以前那样使用相同的URL - 它可以更改 - 但我只需要有一些URL可用于为这些SOAP开发人员获取WSDL。
你好贾森,我很想知道你是否仍在使用这种方法,以及它是如何工作或不为你工作的。你是否发现你必须复制支持两者的任何方法(核心逻辑)? – schmoopy 2012-01-26 20:08:22
我只需要创建两个端点并为每个命令添加一个额外的属性。 – 2012-01-26 20:28:02
解决方案的类似问题。 http://social.msdn.microsoft.com/Forums/en/wcf/thread/845d0bbd-52b4-420f-bf06-793d53ef93ba – maciejW 2010-10-17 01:47:56