WCF客户端的自动配置
我们已经为客户创建了一个WCF服务应用程序。由于该服务用于传输大量数据(可能需要很长时间),因此对WCF客户端的自动配置,wcf,configuration,Wcf,Configuration,我们已经为客户创建了一个WCF服务应用程序。由于该服务用于传输大量数据(可能需要很长时间),因此对Web.config文件进行了一些更改(例如增加了超时限制或消息大小限制),以适应此情况 一切正常,没有技术问题。。。除了客户不太满意的是,每当他们创建一个使用WCF服务的新应用程序时,他们需要手动将所有更改添加到客户端App.config文件中 他们希望自动从服务读取更改 我从来没有听说过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那样自动包含巫毒。
您必须确保它们最终出现在您的构建输出中。如果无法开箱即用,那么我们可能也不会这样做。只是我们的客户(实际上,我们的“次级客户”?我们只是其他人的承包商,实际上是他们的客户)过于挑剔。请参阅我的编辑/附加到我的答案。