我需要在我的ASP中使用不同的数据库连接字符串和SMTP服务器地址。NET应用程序,这取决于它在开发环境或生产环境中运行的位置。
应用程序从Web读取设置。配置文件通过WebConfigurationManager。AppSettings财产。
我使用Build/Publish命令通过FTP将应用程序部署到生产服务器,然后手动替换远程Web。配置正确。
是否有可能以某种方式简化部署过程?谢谢!
我需要在我的ASP中使用不同的数据库连接字符串和SMTP服务器地址。NET应用程序,这取决于它在开发环境或生产环境中运行的位置。
应用程序从Web读取设置。配置文件通过WebConfigurationManager。AppSettings财产。
我使用Build/Publish命令通过FTP将应用程序部署到生产服务器,然后手动替换远程Web。配置正确。
是否有可能以某种方式简化部署过程?谢谢!
当前回答
你看过网络部署项目吗?
http://www.microsoft.com/downloads/details.aspx?FamilyId=0AA30AE8-C73B-4BDD-BB1B-FE697256C459&displaylang=en
如果你不是2008年的版本,VS2005也有一个版本。
其他回答
我也想知道。这有助于我隔离问题
<connectionStrings configSource="connectionStrings.config"/>
然后我保留一个connectionStrings。config以及“{host} connectionStrings.config”。这仍然是一个问题,但如果您对两个环境中不同的部分执行此操作,则可以部署和版本相同的web.config。
(顺便说一下,我不用VS。)
你看过网络部署项目吗?
http://www.microsoft.com/downloads/details.aspx?FamilyId=0AA30AE8-C73B-4BDD-BB1B-FE697256C459&displaylang=en
如果你不是2008年的版本,VS2005也有一个版本。
你也可以使用扩展“配置转换”与“SlowCheetah”一样,
在一个有4个环境(开发、测试、登台和生产)的项目中,我们开发了一个系统,其中应用程序根据部署到的机器名称选择适当的配置。
这对我们来说很有效,因为:
管理员可以在不涉及开发人员(需求)的情况下部署应用程序,也不必摆弄配置文件(他们讨厌配置文件); 机器名称遵循约定。我们使用正则表达式匹配名称,并将其部署到一个环境中的多台机器上;而且 我们对连接字符串使用了集成安全性。这意味着我们可以在设计时在配置文件中保留帐户名,而不泄露任何密码。
在这种情况下,它很适合我们,但可能并不适用于任何地方。
您还可以将其设置为构建后步骤。除了调试和发布之外,设置一个新的配置为“部署”,然后将构建后的步骤复制到正确的web.config上。
我们对所有的项目都使用自动构建,并使用这些构建脚本更新web。配置文件指向正确的位置。但如果你做的都是从VS开始的,那就没用了。