我对WCF很新,我对它有疑问。
在浏览了一些文章之后,我发现在web.config文件中,如果我将基线绑定从basicHttpBinding更改为webHttpBinding,而httpGetEnabled从true更改为false则使用REST。
我的问题是,这些只是我需要改变以制作服务SOAP或REST的两件事吗?或者我是否需要更改/添加任何其他内容?
答案 0 :(得分:5)
您可以在两个不同的端点中公开该服务。 @@
可以使用支持SOAP
的绑定,例如SOAP
,basicHttpBinding
富人可以使用REST
。我假设您的webHttpBinding
服务将在REST
,在这种情况下,您需要使用以下行为配置配置两个端点
JSON
您的方案中的端点配置示例是
<endpointBehaviors>
<behavior name="jsonBehavior">
<enableWebScript/>
</behavior>
</endpointBehaviors>
将<services>
<service name="TestService">
<endpoint address="soap" binding="basicHttpBinding" contract="ITestService"/>
<endpoint address="json" binding="webHttpBinding" behaviorConfiguration="jsonBehavior" contract="ITestService"/>
</service>
</services>
应用于操作合同以使其成为RESTful。 e.g。
[WebGet]
添加服务引用后的SOAP服务的SOAP请求客户端端点配置
public interface ITestService
{
[OperationContract]
[WebGet]
string HelloWorld(string text)
}
在C#中
<client>
<endpoint address="http://www.example.com/soap" binding="basicHttpBinding"
contract="ITestService" name="BasicHttpBinding_ITestService" />
</client>