WCF客户端的自动配置

WCF客户端的自动配置,wcf,configuration,Wcf,Configuration,我们已经为客户创建了一个WCF服务应用程序。由于该服务用于传输大量数据(可能需要很长时间),因此对Web.config文件进行了一些更改(例如增加了超时限制或消息大小限制),以适应此情况 一切正常,没有技术问题。。。除了客户不太满意的是,每当他们创建一个使用WCF服务的新应用程序时,他们需要手动将所有更改添加到客户端App.config文件中 他们希望自动从服务读取更改 我从来没有听说过WCF有这样的功能,所以我认为这是不可能的。但我很想确认一下。。。或者拒绝,如果这实际上是可能的。除非您创建自

我们已经为客户创建了一个WCF服务应用程序。由于该服务用于传输大量数据(可能需要很长时间),因此对
Web.config
文件进行了一些更改(例如增加了超时限制或消息大小限制),以适应此情况

一切正常,没有技术问题。。。除了客户不太满意的是,每当他们创建一个使用WCF服务的新应用程序时,他们需要手动将所有更改添加到客户端
App.config
文件中

他们希望自动从服务读取更改


我从来没有听说过WCF有这样的功能,所以我认为这是不可能的。但我很想确认一下。。。或者拒绝,如果这实际上是可能的。

除非您创建自定义方法来公开这些参数,或者至少公开这些参数的值,否则消费者将看不到这些参数

配置文件应该是私有的,这就是为什么在标准安装中无法浏览到它们的原因


在我看来,您的客户需要接受这样一个事实,即在添加新服务时,可能需要做一些工作。理论上,他们可以从现有应用程序中剪切和粘贴servicemodel配置或其中的部分,以节省“一些”时间。

IIRC。。在stocktrader应用程序的早期版本中

在上述SOF链接中提到

有一种方法可以从服务获取配置。 然而,stocktrader应用程序现在看起来与以前大不相同。 所以我不知道哪个版本会有所不同。 Greg Leake(Leak)是一年前我在TechEd遇到的那个家伙的名字……说到这里,IIRC

实现起来可不是件小事

编辑某些客户端配置文件的成本…….与配置服务的成本相比…….您必须进行该调用

但听起来你的客户在抱怨时需要一些奶酪

这是一段较老的视频…可能会让你走上正确的道路

此PDF

我会给你一些提示

建立并运行“配置服务”需要做大量的工作

我们最终……没有这样做……并在msbuild任务中使用xml操作……来调整wcf客户端xml部分

编辑:

另一个想法。将WCF放在单独的文件中..并分发这些文件。 这将使“编辑位置”更加清晰。。。。。或者用整个销售替换所有(4)个文件

app.config或web.config

<?xml version="1.0"?>
<configuration>

    <system.serviceModel>

        <behaviors configSource="WCFBehaviors.config">
        </behaviors>

        <bindings configSource="WCFBindings.config">
        </bindings>

        <client configSource="WCFClient.config">
        </client>

        <services configSource="WCFServices.config">
        </services>


    </system.serviceModel>

然后制作4个文件。 示例WCFServices.config

<services>
    <service name="MyApp.MyService">
        <endpoint
              address  = "http://localhost:8001/MyService"
              binding  = "wsHttpBinding" bindingConfiguration="WSHttpBindingName1"
              contract = "MyApp.MyIService" >
        </endpoint>
    </service>
</services>

注意,这些不会像web.config和app.config那样自动包含巫毒。
您必须确保它们最终出现在您的构建输出中。

如果无法开箱即用,那么我们可能也不会这样做。只是我们的客户(实际上,我们的“次级客户”?我们只是其他人的承包商,实际上是他们的客户)过于挑剔。请参阅我的编辑/附加到我的答案。