【发布时间】:2016-08-20 09:23:45
【问题描述】:
我们有一个 Web 应用程序在各种客户的本地运行。 web.config 包含很多
- “我们应用程序的一部分”的东西(例如大部分
<system.web>和<system.webServer>块)和 - 需要自定义的东西(连接字符串、应用设置和各种自定义标签)。
在更新期间,第 1 部分应被替换,第 2 部分应保持原样。理想情况下,我有一个web.app.config 和一个web.custom.config,所以我只能替换第一个。当然,IIS 需要在运行时神奇地“合并”它们,但它不会这样做。
我找到了以下方法:
-
Put the custom stuff in external files,即
<appSettings configSource="appSettings.config"/>。我不能使用它,因为它只能用于完整部分。但是,例如,
aspnet:MaxHttpCollectionKeys设置是 should be controlled by the application 的值,而其他应用设置值应该是可自定义的。 -
Parameterization or Web.Config Transformation.
我不能使用它,因为我们的客户安装了不同版本的应用程序。因此,我需要替换 web.config 的特定于应用程序的部分,而不是转换单个标签。此外,我想避免将 msdeploy 添加到我们的部署过程中(xcopy 加上一些脚本来创建 IIS 应用程序并配置它们目前工作得很好)。哦,我仍然有一个大的 web.config,其中包含特定于应用程序和特定于客户的内容。
我错过了一些优雅的解决方案吗?
【问题讨论】:
-
我想你什么都没漏掉。 web.config 的设计并没有考虑到这样的要求。
-
@Downvoter:我们总是感谢您提供反馈以改进问题。
标签: c# asp.net iis web-config