使单个WCF服务支持SOAP,REST和WSDL

Jas*_*ger 11 c# rest wcf soap wsdl

我正在尝试在.NET 3.5中构建一个支持SOAP的C#服务 - 并显示WSDL和REST.

SOAP服务和WSDL生成很容易使用ServiceHostBasicHttpBinding类.得到了工作,客户很高兴.

由于SOAP调用所有使用的简单参数,因此客户端开发人员为某些命令请求了REST接口.所以我改变了的ServiceHost类的WebServiceHost,根据需要添加WebInvokeWebGet属性,增加了一个WebHttpBinding班,和宾果- REST和SOAP进行了两个工作了一个服务.很酷,改变一个界面,REST和SOAP都得到了新的东西.

但是有一个问题 - 不再生成WSDL.我无法浏览到http:// server/service?wsdl并获取WSDL文件.检查MSDN文档,这似乎是默认行为WebServiceHost.

问题:我可以覆盖此行为以便可以获取WSDL吗?没有与以前相同的URL - 它可以更改 - 但我只需要在服务中使用一些URL来为这些SOAP开发人员获取WSDL.

Shi*_*iji 4

当您说“添加了 WebHttpBinding 类”时,听起来您是在代码中而不是在配置文件中进行大量配置。

如果是这种情况,您可以尝试将配置移动到配置文件中。然后为合约创建 2 个端点,一个 REST 和一个 SOAP,具有 2 个不同的地址和绑定。