asp.net - ASP.NET应用程序中用于开发和生产的不同配置文件

标签 asp.net configuration web-config

在我正在开发的一个项目中,我们有一个包含三个配置文件的 Web 应用程序; 网页配置 Web.Config.TestServer Web.Config.LiveServer

当我们发布到测试服务器时,Web.Config 被重命名为 Web.Config.Development,Web.Config.TestServer 被重命名为 Web.Config,使该配置对应用程序有效。

保持三个非常相似的配置文件最新是相当繁重的,并且该系统在属于该项目的许多应用程序中使用;不仅仅是网站。

配置方面的差异最常见的是本地目录或路径、URL、IP、端口号和电子邮件地址。

我正在寻找更好的方法。

最佳答案

虽然你的方法看起来很乏味,但我发现它是最好的方法。

我曾经将所有配置保存在一个 web.config 文件中,并且只是将“生产”部分注释掉。

此后不久,我必须进行“混合”测试,其中我的查找数据来自生产服务器,但新数据被插入到测试数据库中。那时我不得不开始零碎地修改配置 block 的哪些部分要注释/取消注释,这变成了一场噩梦。

同样,我们的服务器管理员负责从测试到生产的实际迁移,但他们中的大多数人对 .NET 不够熟悉,不知道如何管理 web.config 文件。对他们来说,只需查看 .test 或 .prod 文件并迁移正确的文件就容易得多。

您可以使用数据库之类的东西来存储所有配置,但随后您会遇到另一个抽象层,并且必须在最上面进行管理。

一旦您掌握了如何设置两个(或三个)配置文件的技巧或模板,管理它们就会变得容易得多,并且您可以修改测试服务器配置以进行一些独特的测试,而无需太多麻烦.

关于asp.net - ASP.NET应用程序中用于开发和生产的不同配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/544096/

相关文章:

c# - 如何借助 javascript 终止 session ?

python - 使用 PasteDeploy 管道的 Pyramid 脚本不起作用

eclipse - 配置 eclipse 以与 tomcat 一起工作

c# - 尝试替换 connectionStrings 元素以在 Visual Studio Team Services 中进行持续部署

c# - 获取 "The WebResource.axd handler must be registered in the configuration to process this request."错误

asp.net - maxRequestLength 和 maxAllowedContentLength 哪个优先?

c# - 使用内联逗号拆分逗号分隔的 csv 文件

asp.net - HTTP 错误 500.19 - 错误代码 0x80070021

git - 多个差异工具

c# - 成员 'MySql.Data.MySqlClient.MySqlException,MySql.Data, Version=6.8.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d' 的类型未解析