现在我有一个恼人的问题。我有一个站点,其中包括 asp.net 2.0 经典应用程序池上的许多 Web 应用程序。我的应用程序适用于以下步骤:1)我从服务器接收登录表单,输入我的凭据并发送表单。2)当凭据正确时,我的服务器开始将 mashine.config 和 web.config 中的所有配置设置合并到一个文件 ApplicationConfiguration.merged.xml 位于应用程序根文件夹中。3)之后我的应用程序向我发送页面,我继续使用网站。就这样。但是..当我在 app_pool 回收后第一次启动我的应用程序时(在超时或手动回收之后)我在编写 ApplicationConfiguration.merged.xml 后立即刷新了我的应用程序。之后我的会话过期,我再次登录,我的应用程序正常工作。ApplicationConfiguration.merged.xml 位于应用根文件夹中。当我关闭对该文件的写入或将其定位到另一个文件夹(例如应用程序根文件夹中的临时文件夹)时,一切正常。IIS 使用下一个事件刷新我的应用程序:
Application_End
ChangeInGlobalAsax
_shutDownMessage=Overwhelming Change Notification in C:\inetpub\wwwroot\my_app_root_folder
Overwhelming Change Notification in C:\inetpub\wwwroot\my_app_root_folder
Change in GLOBAL.ASAX
HostingEnvironment initiated shutdown
CONFIG change
HostingEnvironment caused shutdown
因此,据我了解,IIS 认为我已经更改了重要的配置文件(Glabal.asax 的 web.config)并刷新了我的应用程序。但是我不使用这个文件做任何事情——我只在这里写当前的配置信息。为什么 IIS 每次登录时都不刷新应用程序,因为我每次在成功登录后都在写入文件,但 IIS 仅在首次启动后刷新我的应用程序。我可以说 IIS 忽略 ApplicationConfiguration.Merged.xml 更改吗?我相信您可以帮助我理解这种奇怪的 IIS 行为。谢谢你的帮助。