我在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>
我看不出有什么可复制的。你能给我一个暗示问题是什么吗?
答案 0 :(得分:2)
这是因为您有另一个配置节定义此协议映射的行为。在协议映射中使用<clear/>
标记将删除第一个配置。这适用于所有相同的冲突,也出现在连接字符串等中。当您从另一个应用程序调用一个服务时,配置的上一级可能会覆盖第二个服务中的某些行为...
答案 1 :(得分:0)
如果添加清除,则删除重复项:
<protocolMapping>
<clear/>
<add scheme="http" binding="basicHttpBinding" />
</protocolMapping>
像这样。