wcf webservice config中的重复键

时间:2018-01-30 15:07:47

标签: .net web-services wcf configuration

我在WCF网络服务中有这个配置:

<system.serviceModel>
    <bindings>
        <basicHttpBinding>
            <binding maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" closeTimeout="00:03:00" openTimeout="00:03:00" receiveTimeout="00:03:00" sendTimeout="00:03:00">
                <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="200000" maxNameTableCharCount="2147483647" />
            </binding>
        </basicHttpBinding>
    </bindings>
    <client>
        <endpoint address="http://webserver/myService.svc" binding="basicHttpBinding" contract="IService" name="IService" />
        <endpoint address="http://webserver/myService1.svc" binding="basicHttpBinding" contract="Documents.IDocService" name="Documents.IDocService" />
    </client>
    <behaviors>
        <serviceBehaviors>
            <behavior>
                <serviceMetadata httpGetEnabled="false" />
            </behavior>
        </serviceBehaviors>
    </behaviors>
    <protocolMapping>
        <add scheme="http" binding="basicHttpBinding"  />
    </protocolMapping>
</system.serviceModel>

我在跟踪文件(diagnostics svclog)中收到以下警告。

  

配置系统检测到不同的重复密钥   配置范围,并覆盖更新的值。

并指出以下一行:

    <protocolMapping>
        <add scheme="http" binding="basicHttpBinding"  />
    </protocolMapping>

我看不出有什么可复制的。你能给我一个暗示问题是什么吗?

2 个答案:

答案 0 :(得分:2)

这是因为您有另一个配置节定义此协议映射的行为。在协议映射中使用<clear/>标记将删除第一个配置。这适用于所有相同的冲突,也出现在连接字符串等中。当您从另一个应用程序调用一个服务时,配置的上一级可能会覆盖第二个服务中的某些行为...

答案 1 :(得分:0)

如果添加清除,则删除重复项:

<protocolMapping>
   <clear/>
   <add scheme="http" binding="basicHttpBinding"  />
</protocolMapping>
像这样。