Asp.net 部署后卸载IIS AppDomain

Asp.net 部署后卸载IIS AppDomain,asp.net,iis,Asp.net,Iis,我正在将一个ASP.NET应用程序(只是一个简单的Http处理程序)部署到IIS(7.5)中,我看到AppDomain在部署后的第一个请求后卸载 我只是在做一个简单的文件系统部署(将新文件(web.config、bin文件夹等)复制到应用程序位置(C:\inetpub\wwwroot…)并根据Global asax中应用程序启动和应用程序结束事件处理程序记录的消息,我看到了以下情况: 初始文件拷贝导致AppDomain卸载,我通过应用程序_End得到一条消息:关机原因通常是“Configurat

我正在将一个ASP.NET应用程序(只是一个简单的Http处理程序)部署到IIS(7.5)中,我看到AppDomain在部署后的第一个请求后卸载

我只是在做一个简单的文件系统部署(将新文件(web.config、bin文件夹等)复制到应用程序位置(C:\inetpub\wwwroot…)并根据Global asax中应用程序启动和应用程序结束事件处理程序记录的消息,我看到了以下情况:

  • 初始文件拷贝导致AppDomain卸载,我通过应用程序_End得到一条消息:关机原因通常是“ConfigurationChange”
  • 对应用程序的请求会导致重新加载AppDomain,因此我会通过application_Start记录一条消息
  • 此请求得到服务后,AppDomain将再次卸载,这次卸载的原因是“BuildManagerChange”
  • 我曾尝试在步骤1之前停止应用程序池,并在步骤2之前再次启动它,但结果相同

    在web上搜索时,“BuildManagerChange”关闭的通常原因是,应用程序的临时ASP.NET文件文件夹中的hash.web文件已更改,事实上,这似乎就是本例中发生的情况。作为应用程序启动的一部分,我猜想,作为BuildManager初始化的一部分,它正在计算它感兴趣的各种文件(web.config、global.asax等)的散列,并且因为这与文件中当前的值不同(因为它刚刚部署),它正在卸载AppDomain

    所以我想我的问题是,为什么文件复制导致的原始AppDomain卸载不更新hash.web文件?有什么办法可以用武力解决这个问题吗?目前所有的证据都表明,在它开始运行之前,它总是会经历一个关闭-启动-关闭周期,但我不相信这是正确的。我错过了一些非常简单的东西吗