IIS在单独的文件中将规则重写到web,config需要重新启动IIS本身以获取更改

iecba09b  于 2023-02-04  发布在  其他
关注(0)|答案(1)|浏览(111)

我有一个ASP .NETWebForms网站,它有一些用于dev/UAT/production的Web.Config文件(相应的web.config部署到相关环境中)--所有这些文件都引用一个共享的重写规则文件--因此重写规则本身不必复制到每个web. config中。

<rewrite>
        <rules configSource="WebConfigRewrites.Config" />
    </rewrite>

但是,如果向此文件添加新的重写规则,则在重新启动IIS之前,该规则不会生效。如果回收应用程序池或在IIS中重新启动网站,则新规则不起作用(例如,在重新启动IIS之前,重写URL将引发404)
有什么办法可以解决这个问题吗?如果我把规则放进web.config,然后回收apppool,甚至更新web.config都可以让这些新规则工作--但代价是必须在几个文件中复制所有规则。
必须重新启动IIS本身真的是垃圾,因为它会导致网站立即响应“服务不可用”503错误。
有别的办法吗?
服务器为Windows Server 2016,服务器类型为

4ioopgfo

4ioopgfo1#

通常我们不需要在更改web. config后重新启动IIS。
更改web.config将触发IIS在应用程序剩余0个连接时重新加载该应用程序。你可以停止并重新启动应用程序池。不建议回收应用程序池,你应停止/启动要更新的相应应用程序池。
您是否尝试过先停止网站然后再重新启动?404错误意味着IIS检测到web.config已更新。您也可以生成日志以查看详细信息。

相关问题