2010-11-11 134 views
1

我正在使用现有服务,无法理清为什么不使用自定义配置。无法覆盖默认的WCF配置

我的服务类看起来是这样的:

[ServiceBehavior(Name = "MagicService",Namespace = Namespaces.NS_Magic_ADMIN_SERVICE, ConfigurationName = "MagicServiceConfiguration")] 
public class MagicService : IMagicService 

服务配置:

<service name="MagicServiceConfiguration" behaviorConfiguration="MagicServiceBehavior"> 
    <endpoint address="" 
     name="httpAdminServiceSEP" 
     binding="basicHttpBinding" 
     bindingName="basicMemberBinding" 
     bindingNamespace="http://magic-service.me.com/admin/2010/04/" 
     contract="Me.Manager.Magic.Contracts.Behavior.IMagicService"> 
    </endpoint> 
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/> 
    </service> 

绑定:

<basicHttpBinding> 
    <binding name="basicMemberBinding" 

      receiveTimeout="00:10:00" 
      sendTimeout="00:10:00" 
      openTimeout="00:10:00" 
      closeTimeout="00:10:00" 
      maxReceivedMessageSize="2147483647" 
      maxBufferSize="2147483647" 
      maxBufferPoolSize="2147483647"> 
    </binding> 
    </basicHttpBinding> 

我不断收到好老:“有一个错误反序列化System.String类型的对象。在读取XML时,超出了最大字符串内容长度配额(8192)数据。可以通过更改创建XML阅读器时使用的XmlDictionaryReaderQuotas对象上的MaxStringContentLength属性来增加此配额。线81,80" 位

每当我添加它会自动添加一个服务引用使用默认8196米的长度。

如果删除了服务的配置没有什么变化。不过抛出长度例外。

回答

1

你需要使用bindingConfiguration=属性您<endpoint>引用您的绑定设置 - 而不是bindingName=之一:

<service name="MagicServiceConfiguration" behaviorConfiguration="MagicServiceBehavior"> 
    <endpoint 
    name="httpAdminServiceSEP" 
    address="" 
    binding="basicHttpBinding" 
    bindingConfiguration="basicMemberBinding" *** here use bindingConfiguration!! 
    bindingNamespace="http://magic-service.me.com/admin/2010/04/" 
    contract="Me.Manager.Magic.Contracts.Behavior.IMagicService"> 
    </endpoint> 
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/> 
</service> 
+0

正是这种有另外一个问题下来,我不得不修复以及线路感谢。 – jfar 2010-11-11 21:59:43