我必须在WCF主机使用的web.config文件和Web客户端使用的web.config文件之间复制一些设置(如连接字符串)。
为了不复制,我可以同时从一个单独的xml文件读取web.config?两个web.config可以完全在不同的解决方案/项目,所以我猜这是不可能的,但想得到其他人的意见。
PS:我明白我可以使用数据库来存储所有的配置设置。
解决方法
是的,任何配置部分都可以“外部化” – 这包括诸如< appSettings>,< connectionStrings>还有很多。
你的web.config中有这样的东西:
<configuration> <appSettings configSource="appSettings.config" /> <connectionStrings configSource="connectionStrings.config" /> <system.web> <pages configSource="pages.config" /> <httpHandlers configSource="httphandlers.config"> </system.web> </configuration>
外部化的配置将只包含其中的一个子节点:
httphandlers.config:
<httpHandlers> <remove verb="*" path="*.asmx"/> <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory,System.Web.Extensions,Version=3.5.0.0,Culture=neutral,PublicKeyToken=31BF3856AD364E35"/> <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory,PublicKeyToken=31BF3856AD364E35"/> <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler,PublicKeyToken=31BF3856AD364E35" validate="false"/> </httpHandlers>
请注意,您无法外部化整个< system.web>部分,因为这是一个配置部分组 – 而不是配置部分 – 但您可以外部化system.web中包含的大多数子部分。