我有一些奇怪的行为,我认为这是不正常的,并且导致我在dev中出现调试问题,因为我必须两次启动调试器。
在本地开发后更改代码后,按F5进行调试会导致Application_End即使IIS尚未运行也会触发。这显然会清除会话状态,并且在引用会话时会在代码中导致我出现问题。
复制(无论如何我)
将以下内容添加到Global .asax
protected void Application_End()
{
string test = "";
}
我意识到如果IIS已经运行,这将是正常行为,因为已编译的程序集会触发应用程序域回收。但是,IIS尚未运行,它是由VS在调试会话开始时由F5启动的,我已经检查了任务管理器中的进程。
我甚至经历过一个只包含一个控制器,一个视图和一个viewbag变量的项目的行为。
它与浏览器无关,因为与镀铬相同
没有IIS日志或事件日志
它第二次正常工作(我想没有改变的组件来触发回收)
为了向自己证明这是不正常的,我已经使用VS 2013 Ultimate在我自己的机器上重复测试并且不能让它失败!
两台机器都运行Win 7 64位和IIS Express 8。
有没有人知道可能导致IIS结束我的应用程序的原因是什么?
更新
我已经在遇到问题的机器上托管的Win 7 64位VM上尝试了相同的测试,并且它有效
然后我将我的dev复制到VM,这也没有问题!
因此,我的工作机器上出现了IIS Express 8或VS 2013 Pro的错误。
是否有人知道可能已损坏或更改的内容导致此问题?