是否可以将IIS站点配置为从除web.config以外的站点读取ASP.Net设置?
我们希望在我们的代码库中有三个配置文件 - web-dev.config,web-test.config和web-prod.config。每个IIS实例都将配置为从其特定文件中读取。这样我们就可以将它们彼此相邻地进行版本控制(并且一键式部署整个站点)但是要知道每个IIS实例都会读取特定于自身的设置。
我在IIS中发现它显示了web.config的位置,但是我看不到如何更改位置。
答案 0 :(得分:4)
我使用configSource属性为需要不同的dev和production值的部分指定外部配置文件。
<connectionStrings configSource="Config\ConnDev.config"/>
然后您只需更改一个设置(手动或使用工具)即可从Dev切换到生产配置。
答案 1 :(得分:1)
现在最好的解决方案是使用不同的配置进行开发和生产。然而,这将改变.net 4和VS 2010,他们已经添加了Web.Debug.config,Web.Release.config,Web.Staging.config和Web.Testing.config,然后将发布您需要的配置。环境。
答案 2 :(得分:0)
在我的公司,我们只需要将部署工具设置为根据我们正在进行的部署类型将相应的文件复制到web.config。
答案 3 :(得分:0)
我认为必须将其命名为web.config。
您正面临一个共同的问题。
我使用的一个在大型组织中运行良好的解决方案是在Web服务器上设置环境变量。如DEV,QA,UAT,PROD。然后,在代码中,您可以查询环境变量以查看您所在的计算机,然后相应地选择appSettings的值。例如,您可以拥有一个名为DEVconnection的数据库连接字符串,另一个名为UATconnection。如果您的代码根据环境变量确定您在UAT上,那么它将使用UATconnection。
这假设您可以在Web服务器上设置环境变量。在这种情况下,运行服务器的管理员是建议此解决方案的人员。
关于这一点的甜点是,只有一个版本的web.config。
答案 4 :(得分:0)
我认为我们不能以声明方式创建web.config,以便我们可以指定不同的配置文件。您可以做的一件事是拆分配置文件并设置不同的环境。 请仔细阅读这篇文章 http://jetmathew.wordpress.com/2011/02/07/split-web-config-for-different-environment/
欢呼声