我有一个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,服务器类型为
1条答案
按热度按时间4ioopgfo1#
通常我们不需要在更改web. config后重新启动IIS。
更改web.config将触发IIS在应用程序剩余0个连接时重新加载该应用程序。你可以停止并重新启动应用程序池。不建议回收应用程序池,你应停止/启动要更新的相应应用程序池。
您是否尝试过先停止网站然后再重新启动?404错误意味着IIS检测到web.config已更新。您也可以生成日志以查看详细信息。