Wcf 更换客户端部分不需要';t工作(system.serviceModel)

Wcf 更换客户端部分不需要';t工作(system.serviceModel),wcf,app-config,Wcf,App Config,我试图用我自己的处理程序替换“client”处理程序的默认machine.config设置,但是,当我运行它时,出现以下错误: “节或组名称‘客户端’已定义。对此的更新只能在定义它的配置级别进行。” 下面是我的app.config的外观: <configuration> <configSections> <remove name="client"/> <sectionGroup name="system.serviceModel" t

我试图用我自己的处理程序替换“client”处理程序的默认machine.config设置,但是,当我运行它时,出现以下错误:

“节或组名称‘客户端’已定义。对此的更新只能在定义它的配置级别进行。”

下面是我的app.config的外观:

<configuration>
  <configSections>
    <remove name="client"/>
    <sectionGroup name="system.serviceModel" type="System.ServiceModel.Configuration.ServiceModelSectionGroup, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
      <section name="client" type="xyz.Messaging.CustomClientSection, Point.Messaging" />
    </sectionGroup>
  </configSections>

请让我知道,如果你有任何想法,为什么它似乎没有删除这个部分(正如人们所期望的),并给我这个错误,而不是


谢谢。

好吧,你不能这么做。
子部分通过its与
ServiceModelSection组紧密相连。

您可以这样做,但必须删除并重新添加整个system.serviceModel部分。我不认为你能挑出“客户”部分

<configuration>
  <configSections>
    <remove name="system.serviceModel"/>
    <sectionGroup name="system.serviceModel" type="System.ServiceModel.Configuration.ServiceModelSectionGroup, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
      <section name="client" type="xyz.Messaging.CustomClientSection, Point.Messaging" />
    </sectionGroup>
  </configSections>
  ...
</configuration>

...
当然,这需要一点工作。希望这是有帮助的,但我感觉你不会喜欢这个答案

如果sectionGroup元素支持
元素,则删除子节的唯一方法是,它不支持该元素:


希望这有帮助。

为什么不呢?我看到您可以替换其他machine.config部分,它在哪里说我不能替换它,并设置另一个configurationElement来列出端点?如果是这种情况,有没有办法从另一个来源“代理”这些值(由于某些限制,我无法将其放在app.config中)。谢谢。如果您在问题中更多地解释您试图实现的目标,我们会更好,这样我们可以就您如何解决问题提出建议。首先非常感谢。我们遇到的问题与我们可以将WCF频道信息存储在app.config中这一事实有关(出于某些部署原因). 因此,我考虑创建一个“代理”类,通过实现configurationSection模型为这些值提供服务(从另一个资源获取),然后用我自己的实现“覆盖”孩子们配置的“客户端”(以及服务),该实现将为WCF服务(与TIBCO一起使用)提供这些值。如果你有更好的主意,请告诉我。