是否可以组合app.config文件和web.config文件。我是自托管服务并在IIS中托管它,并发现自己必须编辑两个不同的文件?
答案 0 :(得分:6)
是的,您可以将相关配置文件“外部化”为单独的文件,并引用app.config
和web.config
中的文件。
任何.NET配置部分都可以存储到外部配置文件中,因此您可以编写:
<system.serviceModel>
<bindings configSource="bindings.config" />
<behaviors configSource="behaviors.config" />
<client configSource="client.config" />
....
</system.serviceModel>
现在,您的外部文件看起来与配置中的相关配置部分完全相同:
<强> bindings.config 强>
<?xml version="1.0" encoding="utf-8" />
<bindings>
<basicHttpBinding>
<binding name="......." ...... />
</basicHttpBinding>
</bindings>
注意:Visual Studio的编辑器会抱怨configSource=
属性 - 但是Intellisense混淆了 - 每个配置部分都存在configSource属性 ,而确实有效就好了!
注意#2:您无法将整个<system.serviceModel>
外部化,因为这是配置部分组 - 不幸的是,这些都没有任何方法可以放入外部文件。
答案 1 :(得分:0)
是的,你可以。只需将app.config中的<appSettings>
部分添加到web.config中,然后根据需要进行合并。
答案 2 :(得分:0)
过去当我想从自定义文件位置读取serviceModel
配置部分时,我已经定义了System.ServiceModel.ServiceHost
的自定义子类,然后传递了自定义配置文件的位置到那个子类。
此处描述了该技术:Reading WCF Configuration From a Customer Location
使用这种技术,您应该能够,与marc_s声明的相反,将整个服务配置放在您的IIS配置文件中的WCF配置文件(app.config,我推测)中,然后传递位置IIS配置文件到自定义ServiceHost
子类,如上所述。