我正在尝试通过url访问我的wcf服务中的方法。我已经关注了如何使用wcf连接REST并通过get访问方法的许多指南。我收到以下错误
内容类型application / soap + xml;服务不支持charset = utf-8。
我知道这与我的web.config
不正确有关,但是我已正确匹配我的服务行为配置。我在这里错过了什么?任何帮助将不胜感激。
<system.serviceModel>
<services>
<service name="Developer1.Core.Service.Developer1Service"
behaviorConfiguration="MyServiceBehavior" >
<endpoint
address="ws"
binding="wsHttpBinding"
contract="Developer1.Core.ServiceContracts.IDeveloper1Service" />
<endpoint
address="" behaviorConfiguration="webBehavior"
binding="webHttpBinding"
contract="Developer1.Core.ServiceContracts.IDeveloper1Service" />
<endpoint
address="mex" binding="mexHttpBinding"
contract="IMetadataExchange"/>
</service>
</services>
<behaviors>
<endpointBehaviors>
<behavior name="webBehavior">
<webHttp />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="MyServiceBehavior">
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<protocolMapping>
<add binding="basicHttpsBinding" scheme="https" />
</protocolMapping>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"
multipleSiteBindingsEnabled="true" />
</system.serviceModel>
在我添加了行为名称=“MyServiceBehavior”后,似乎发生了错误。
这就是我要完成的任务Making a WCF Web Service work with GET requests
解决!!!
我解决了这个问题似乎我必须在服务库而不是应用程序中做我正在做的事情。所以现在我用我的wcf库处理REST,其他方法在我的WCF应用程序中处理。似乎app config和web config在某种程度上有所不同。然后我去了解决方案属性并选择一次启动多个项目。现在,我可以在库中使用get请求命中方法,并且应用程序运行所有其他不处理HTTP协议的方法。我的解决方案中有一个WCF库和WCF应用程序。应用程序使用web.config,库使用app.config。在本文后面http://weblogs.asp.net/kiyoshi/wcf-using-webhttpbinding-for-rest-services可以使用App配置。我的WCF应用程序然后继承我的库中的服务文件,并且不包含任何额外的服务方法,它只是在我的WCF库中运行方法。但是库设置为处理HTTP请求。可能不是正确的解决方案,但它对我有用。