【问题标题】:restart website in IIS when changing values in the appSettings of the web.config更改 web.config 的 appSettings 中的值时在 IIS 中重新启动网站
【发布时间】:2014-05-11 14:39:37
【问题描述】:

为了安全起见,当我在 Web.config 中更改 appSettings 的值时,我总是重新启动网站,以便刷新所有更改。但是我真的需要重新启动它吗? IIS 是如何处理 appSetting 值的,是一次性读取这些值(启动应用程序后)还是每次客户端访问网站时 IIS 都读取它?

【问题讨论】:

    标签: asp.net-mvc-4 iis web-config appsettings


    【解决方案1】:

    其实需要重启的不是“网站”而是“应用池”。请记住,IIS 中的网站管道没有“可执行”代码,只有标记。

    然而,这被 IIS 视为“每应用程序池”设置。在您的 INETMGR 中,打开任何应用程序池的属性并查找此设置:“禁用回收配置更改”(在回收组设置下)。如果将此设置为“True”,则 IIS 将不会监视该应用程序池的配置文件的配置更改,并且如果您编辑/更改某些内容,则不会重新启动应用程序池。但是,这意味着您必须手动回收——如果您正在更新网站并想要更改层次结构中的 BIN 文件夹和多个 .config 文件,这是一个有效的方案。在一个 web.config 文件的最小条件下,它自己留下了两个应用程序池重新启动.. 一个用于 BIN 更改,一个用于 web.config。

    【讨论】:

    • 好答案@Sujay,所以这意味着我每次更改 appconfig 中的值时都不需要重新启动我的网站。还有一个问题。 IIS 是一次读取这些值并将其存储在内存中,还是在每次客户端访问网站时读取这些值?
    • @rcadaoas :根据我所看到的行为,它具有作为观察程序的实现,并在文件更改时执行重新加载。它也“似乎”具有校验和类型的监视,因为有时我看到如果您替换相同的文件(在 BIN 文件夹中重新复制相同的 DLL),似乎不会发生回收。
    • @SujaySarma:一个问题。在超级精细的生产环境中,改变appsetting入口的值会导致服务器端出现问题吗?我的意思是,不是与价值相关的异常,回收APP池对交易来说是危险的,或者服务器可能无法重启?
    • @Revious,应用程序池重启将导致所有新请求至少延迟几秒钟。
    • @Sujay,澄清一下,IIS 无法判断您何时“完成”更改。如果您要复制大量 bin 文件(例如使用预编译),它可能会重新启动很多次。网站其他地方的文件删除也会导致重新启动。
    猜你喜欢
    • 2017-11-28
    • 2019-01-02
    • 2021-04-16
    • 2018-12-21
    • 1970-01-01
    • 2021-12-18
    • 2023-02-11
    • 1970-01-01
    相关资源
    最近更新 更多