2010-11-21 99 views
0

需要发生什么才能允许HTTP POST至WCF服务?将HTTP POST发送至WCF服务

我想让人们不仅可以使用SOAP与此服务,但他们也必须能够HTTP POST到此服务,并理想地接收XML响应。

我找不到一个简单的方法来允许WCF服务接受HTTP POST。

我已经过了HTTP 415错误,需要一些帮助,可能是关于端点的web.config更改,或者方法(WebInvoke)上方的其他属性。

谢谢!

+0

我使用REST Starter Kit @为POX(普通HTTP XML)WCF的东西找到了一个很棒的视频:http://www.msdev.com/Directory/Description.aspx?eventId=1312 – 2010-11-22 21:33:13

回答

4

为了通过标准HTTP动词与WCF服务对话,您需要使用WCF REST组件。

在.NET 3.5 SP1中,您将需要WCF REST Starter Kit(它不是基本包的一部分)。

当你有这个,你可以在你的WCF服务中定义一个端点为webHttpBinding,基本上应该允许你定义GET,POST,PUT和DELETE操作。

查看WCF REST developer center了解大量白皮书,教程,演练和截屏视频,向您展示如何完成所有这些工作。

简而言之,你会装饰要暴露在HTTP REST与WebGetWebInvoke属性和网址模板中您的服务方法(S) - 类似:

[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开发中心应该进入全细节非常深入。

+0

感谢您的及时响应。我会看@初学者工具包和开发中心。 – 2010-11-21 23:56:36