我们有一大堆网站都有非常相似的web.config文件。你能在每个网站的根目录之前的一个配置文件中集中重复的配置吗?或者是唯一的选项machine.config?我们希望将程序集引用集中在GAC中。结构形式:
4zcjmb1e1#
除了machine.config、app/web.config和user.config级别之外,我还没有遇到过继承配置文件的方法。但是,您可以在所有配置节(基于ConfigurationSection)上使用configSource属性,以包括一个公共文件,例如服务端点、客户端端点、绑定、连接字符串和其他文件。即使VS intellisense将其标记为不受支持,它也可以工作。
<configuration> <system.serviceModel> <services configSource="Services.config" /> <client configSource="Client.config" /> <bindings configSource="Bindings.config" /> <behaviors configSource="Behaviors.config" /> </system.serviceModel> <pages configSource="pages.config"/> </configuration>
配置源文件必须位于应用程序的文件夹或其下的任何文件夹中。没有向上或绝对路径。但在VS2010中有一个克服此限制的技巧。您需要添加一个现有文件作为链接,并更改其名为“复制到输出目录”的属性。这样,您的绝对路径文件将被复制到您的应用程序文件夹中,您可以从该文件夹在configSource中引用它。在以前版本的VS中,也可以这样做,但方式不太优雅--在生成后事件中复制文件。如果您主要希望集中WCF设置,还有另一个选项:这样做的巨大好处是您可以从VS获得编译时检查和重构支持。如果这听起来不太像,我可以向您保证,在更大的WCF项目中,配置文件管理是一个噩梦,尤其是当您需要更改某些内容时。使用此方法,只需创建一个公共程序集,其中所有服务、终结点绑定等。缺点是不需要重新编译就可以更改WCF设置。但如果这些设置不经常更改,则这是一个诱人的替代方案。
sh7euo9m2#
您可以使用位于Microsoft.NET框架的配置文件或者,如果在IIS中将Containing目录配置为主Web站点,然后将Web站点目录作为应用程序放置,则可以将web.config放在主Web站点中,使其具有您提到的结构。
2条答案
按热度按时间4zcjmb1e1#
除了machine.config、app/web.config和user.config级别之外,我还没有遇到过继承配置文件的方法。但是,您可以在所有配置节(基于ConfigurationSection)上使用configSource属性,以包括一个公共文件,例如服务端点、客户端端点、绑定、连接字符串和其他文件。即使VS intellisense将其标记为不受支持,它也可以工作。
配置源文件必须位于应用程序的文件夹或其下的任何文件夹中。没有向上或绝对路径。但在VS2010中有一个克服此限制的技巧。您需要添加一个现有文件作为链接,并更改其名为“复制到输出目录”的属性。这样,您的绝对路径文件将被复制到您的应用程序文件夹中,您可以从该文件夹在configSource中引用它。在以前版本的VS中,也可以这样做,但方式不太优雅--在生成后事件中复制文件。
如果您主要希望集中WCF设置,还有另一个选项:这样做的巨大好处是您可以从VS获得编译时检查和重构支持。如果这听起来不太像,我可以向您保证,在更大的WCF项目中,配置文件管理是一个噩梦,尤其是当您需要更改某些内容时。使用此方法,只需创建一个公共程序集,其中所有服务、终结点绑定等。缺点是不需要重新编译就可以更改WCF设置。但如果这些设置不经常更改,则这是一个诱人的替代方案。
sh7euo9m2#
您可以使用位于
Microsoft.NET框架的配置文件
或者,如果在IIS中将Containing目录配置为主Web站点,然后将Web站点目录作为应用程序放置,则可以将web.config放在主Web站点中,使其具有您提到的结构。