我想知道当 web.config 是要由安装程序安装在任何机器上的 Web 服务的一部分时,分发 web.config 的最佳方式是什么。在我的情况下,web.config 包含 Web 服务正常运行所需的 http 处理程序,但是一旦安装,用户可以从 IIS 中更改 Web 服务的选项,这将更改 web.config(例如授权、连接字符串、 ETC。)。问题是如果我将 web.config 作为安装/升级的一部分将覆盖所有用户定义的设置,但如果我不这样做,它可能会丢失新的 https 处理程序或其他关键的新 web.config 设置。关于 web.config 分发的最佳做法是什么?
请您参考如下方法:
这在一定程度上取决于您的服务究竟需要在 web.config 中使用什么。
您可以使用 ConfigSource web.config 中某些部分的属性将该部分中的所有设置移动到外部辅助文件。
例如:
<system.webServer><handlers ConfigSource="httphandlers.config" />
然后您可以自己更新 httphandlers.config 而不必担心客户对其进行任何修改。
如果您的客户需要添加他们自己的 http 处理程序,就会出现问题,那么您会遇到与以前相同的问题。
你不应该放 ConfigSource在 <appSettings> , 但定义你自己的 configSection , 然后将该部分也放入辅助文件中。与您的服务相关的所有设置都应该放在那里。
因此,只要您不与客户共享某个部分,这就应该有效。
这只是概念,我自己并没有在生产中使用它。
