我最近将 WCF SOAP 服务转换为 REST/JSON 服务。如此处的响应中所述,Visual Studio 的添加服务引用功能无法为 JSON 服务生成代码。该问题答案中的链接文章暗示了将 WCF 暴露为 REST 和 SOAP 来解决问题的可能性,但它没有提供任何详细信息。
有谁知道这是否可行,如果可以,如何设置?
总是有自己编写代码生成器的替代方案,它读取 WCF REST 服务的 WSDL 并生成 C# 类,但似乎应该有比这更简单的解决方案。
作为参考,我的 web.config:
<system.serviceModel>
<behaviors>
<endpointBehaviors>
<behavior name="RestBehavior">
<webHttp />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="GetBehavior" >
<serviceMetadata httpGetEnabled="true" />
<serviceDebug
httpHelpPageEnabled="true"
includeExceptionDetailInFaults="true"
/>
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<webHttpBinding>
<binding name="WebHttpBinding">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="None" />
</security>
</binding>
</webHttpBinding>
</bindings>
<services>
<service name="Service" behaviorConfiguration="GetBehavior">
<endpoint address=""
binding="webHttpBinding"
behaviorConfiguration="RestBehavior"
contract="IService"
bindingConfiguration="WebHttpBinding">
</endpoint>
</service>
</services>
</system.serviceModel>
我的服务方法都具有以下属性:
[WebInvoke(RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)]