目前我可以根据构建配置轻松设置基于Web.config的转换,例如对于Debug
使用connectionString=server;..
,对于Release
使用connectionString=./SQLExpress;..
。
但是是否可以根据Web发布配置文件进行一些Web.config转换呢?例如对于配置文件Server1
使用connectionString=server1;..
,对于Server2
使用connectionString=server2;..
?
目前我可以根据构建配置轻松设置基于Web.config的转换,例如对于Debug
使用connectionString=server;..
,对于Release
使用connectionString=./SQLExpress;..
。
但是是否可以根据Web发布配置文件进行一些Web.config转换呢?例如对于配置文件Server1
使用connectionString=server1;..
,对于Server2
使用connectionString=server2;..
?
<connectionStrings configSource="cstrings.config"/>
我相信发布配置文件与构建配置文件是独立的,这有点遗憾,因为你可能会不小心将调试配置部署到生产服务器上。
然而,如果你正在使用 MSDeploy,那么有办法在其中修改 web.config。请参见 MSDeploy - Changing Connection string parameter after deploying the package 以获取更多详细信息。
可能有另外一种略微不同的方法来完成这个任务。
在您的生产服务器上,为customdb在每台生产机器的c:\windows\system32\drivers\etc\hosts文件中创建一个虚拟条目。每个条目指向您希望该机器使用的数据库。然后,您只需要针对所有生产服务器指向connectionString=customdb;。
唯一的缺点是您需要访问hosts文件,并且需要使用一个数据库。
希望能有所帮助。