【发布时间】:2015-04-27 13:08:30
【问题描述】:
在将我所有的解决方案转移到新安装的机器上(这让我认为这是一个配置问题)之后,我的 MVC 5 Web 应用程序现在遇到了这个问题。
当我构建我的 web 应用程序 (VS 2013) 时,这当然会重新生成所有 web 代码,并且 IIS 将在下一页加载时重新启动应用程序。但是现在看来,当我转到我的开始/登录页面时,Application_Start() 按预期触发,但是当页面提交时,在到达 HttpPost 方法之前,整个应用程序似乎再次启动(Application_Start 再次运行)。这第二次开始似乎发生在第一次 Application_End() 被调用之前......但不管顺序如何,我不知道为什么现在这是一个问题。
检查 Application_End() 中的应用程序关闭原因我得到了臭名昭著的模糊(并且显然完全没有记录)“BuildManagerChange”...... MSDN 给出了一些可笑的模糊描述。
有没有人知道为什么在将我的开发环境加载到新机器上后会开始。两台机器都是运行 IIS7.5 的 Win7 Pro,我相信 IIS 配置与旧的相同(虽然,显然不是??)。源代码/web.config/etc 在机器之间没有变化。
我能找到的关于这个问题的唯一文档是关于使用 IISExpress,但我使用的是随 Win7 pro 安装的标准 IIS7.5。
编辑:从网站的整个启动过程中删除所有自定义代码,并将我的 LoginController 恢复为原始的简单形式(无自定义代码)后,仍然会发生这种情况。
【问题讨论】:
-
好吧,在这上面浪费 2 天很有趣!但是,这已经解决了。运行 procmon 显示 mcshield.exe (McAfee AV) 正在访问 hash.web。显然,实时“访问扫描仪”检查了 asp.net 缓存,并且 IIS 以某种方式意识到了这一点,并认为它需要再次重建站点。出于某种原因,McAfee 在第一次之后没有对其进行检查,因此在第二次构建/重新启动后它可以正常运行。我在 c:\Windows\Microsoft.NET 文件夹中添加了扫描仪排除项,这似乎解决了问题。
-
您应该将您的评论移至答案并接受它。
-
您仍然应该将其标记为已接受的答案!
标签: asp.net asp.net-mvc iis