【问题标题】:Automatic configuration of WCF clientWCF 客户端的自动配置
【发布时间】:2015-05-23 22:38:23
【问题描述】:

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

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

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

我从来没有 WCF 有这样的功能,所以我认为这是不可能的。但如果这真的可能的话,我非常希望得到证实……或否认。

【问题讨论】:

    标签: wcf configuration


    【解决方案1】:

    IIRC .. 在股票交易者应用程序的早期版本中。

    How to implement Configuration Service 5.0 of the StockTrader 5.0 sample application?

    在上述 SOF 链接中提到

    有一种方法可以从服务中获取配置。 但是,股票交易者应用程序现在看起来与以前大不相同。 所以我不知道哪个版本它变得不同了。 Greg Leake (Leak) 是我一年在 TechEd 遇到的那个家伙的名字......谈论这个,IIRC。

    实施起来并非易事。

    编辑一些客户端配置文件的成本............与配置服务......你必须进行那个调用。

    但听起来你的客户需要一些奶酪来抱怨他们的抱怨。

    这是一个较早的视频...可能会让您走上正确的道路。

    http://channel9.msdn.com/Shows/Endpoint/endpointtv-High-Performance-WCF-NET-Stock-Trader-with-Greg-Leake

    此 PDF

    http://download.microsoft.com/download/7/C/9/7C9F7B89-8AF0-4433-AB3A-B615C8EF9484/ConfigServiceVSTemplate.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 那样自动包含在内。 您必须确保它们最终出现在您的构建输出中。

    【讨论】:

    • 如果不可能开箱即用,那么我们可能也不会这样做。只是我们的客户(实际上是我们的……“子客户”?我们只是别人的承包商,实际上是他们的客户)过于挑剔。
    • 查看我的编辑/附加到我的答案。
    【解决方案2】:

    除非您创建自定义方法来公开这些参数,或者至少公开它们的值,否则它们对消费者是不可见的。

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

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

    【讨论】:

      猜你喜欢
      • 2011-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多