允许HTTP POST到WCF服务需要做什么?
我想允许人们不仅将SOAP与此服务一起使用,而且还必须能够对此服务进行HTTP POST并理想地接收XML响应。
我找不到允许WCF服务接受HTTP POST的简单方法。
我已经过了HTTP 415错误,需要一些关于端点的web.config更改或方法(WebInvoke)上方的其他属性的帮助。
谢谢!
答案 0 :(得分:4)
为了通过标准HTTP谓词与WCF服务进行通信,您需要使用WCF REST组件。
在.NET 3.5 SP1中,您需要的是WCF REST入门套件(它不是基本软件包的一部分)。
如果有了这个,你可以使用webHttpBinding
在WCF服务中定义一个端点,基本上应该允许你定义GET,POST,PUT和DELETE操作。
查看WCF REST developer center,查看大量白皮书,教程,演练和截屏视频,了解如何完成所有这些操作。
简而言之,您可以使用WebGet
或WebInvoke
属性和网址模板来装饰您希望通过HTTP REST公开的服务方法,例如:
[ServiceContract]
public partial class YourService
{
[WebInvoke(Method = "POST", UriTemplate = "yourservice/{id}/save")]
[OperationContract]
SomeReturnType YourMethodCall(string someParam);
...
}
然后,在web.config
(用于在IIS中托管)或在app.config
中,您需要具有正确绑定的端点:
<endpoint name="webEndpoint"
address="...."
binding="webHttpBinding"
contract="IYourServiceContract" />
您的配置中可能还需要一些额外的东西--WCF REST开发中心应该深入了解所有细节。