I have created a WCF web service inside a web role in an Azure Cloud Service. I verified the completeness of the implementation by deploying the cloud service on the cloud and having a client application call the service. However, when I look into web.config of the web role that hosts the WCF web service, I could not find any reference to the Web service. Where can I find the configuration related to the web service? Aparently, web services hosted within web role use HTTP binding; I need to change the binding of my service to use JSON for all communication. Can you please tell me how to achieve this.
问问题
783 次
1 回答
1
您现在可能正在使用 basicHttpBinding - 这是 WCF 对 HTTP 的默认设置。在 web.config 中看不到对服务的引用的原因是.NET Framework 4.0 中引入的简化配置。如果需要,您仍然可以像在早期版本中一样在 web.config 中显式配置服务,但这不是必需的。
要执行您的要求,您需要执行以下操作:
将 protocolMapping 更改为使用 webHttpBinding 而不是 basicHttpBinding。
添加 webHttp 端点行为并将 DefaultOutgoingResponseFormat 设置为“Json”。
更改 .svc 标记文件以包含 Factory 属性并指定 WebServiceHostFactory。例如:
Factory="System.ServiceModel.Activation.WebServiceHostFactory"
最后,将 [WebGet] 属性添加到服务合同中的方法中。
于 2013-08-21T14:48:50.993 回答