问题描述
我有一个REST WCF服务。它使用的是webHttpBinding,其配置如下所示:
I have a REST WCF service. Its using a webHttpBinding and the configuration looks like this:
<service name="IndexingService.RestService" behaviorConfiguration="IndexingService.Service1Behavior">
<endpoint
address=""
binding="webHttpBinding"
bindingConfiguration="CustomMapper"
contract="IndexingService.IIndexingService"
behaviorConfiguration="webby"/>
</service>
CustomMapper用于应用自定义WebContentTypeMapper,我尝试将其配置为:
The CustomMapper is used to apply a custom WebContentTypeMapper, which I tried to configure like this:
<binding name="CustomMapper">
<webMessageEncoding webContentTypeMapperType="IndexingService.CustomContentTypeMapper, IndexingService" />
<httpTransport manualAddressing="true" />
</binding>
但是我不知道在web.config中应该插入以下行:
But I cannot figure out where in my web.config I should insert these lines:
- 如果我将这些行放在下面,则会出现错误,因为webMessageEncoding不是可识别的元素。
- 如果我将行放在自定义绑定标签下,我得到一个错误,即wsHttpBinding没有定义CustomMapper!?
有人可以解释如何将自定义类型映射器与webHttpBinding一起使用?
Can somebody explain how to use a custom type mapper together with webHttpBinding?
推荐答案
如果定义了完整的自定义绑定(如此处使用 CustomMapper
):
If you define a complete custom binding (as you do here with CustomMapper
):
<binding name="CustomMapper">
<webMessageEncoding webContentTypeMapperType=
"IndexingService.CustomContentTypeMapper, IndexingService" />
<httpTransport manualAddressing="true" />
</binding>
然后,您需要在服务端点中使用该自定义绑定-而不是webHttpBinding!此配置部分不仅定义bindingConfiguration!
then you need to use that custom binding in your service endpoint - not webHttpBinding! This config section does not define just a bindingConfiguration!
在此处尝试此配置:
<system.serviceModel>
<bindings>
<customBinding>
<binding name="CustomMapper">
<webMessageEncoding webContentTypeMapperType=
"IndexingService.CustomContentTypeMapper, IndexingService" />
<httpTransport manualAddressing="true" />
</binding>
</customBinding>
</bindings>
<services>
<service name="IndexingService.RestService"
behaviorConfiguration="IndexingService.Service1Behavior">
<endpoint
address=""
binding="customBinding"
bindingConfiguration="CustomMapper"
contract="IndexingService.IIndexingService"
behaviorConfiguration="webby"/>
</service>
</services>
</system.serviceModel>
Marc
这篇关于webHttpBinding使用webMessageEncoding:如何配置?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!