为啥在单步执行 ASP.NET MVC 控制器时,我的 VS2008 调试会话总是退出?
Posted
技术标签:
【中文标题】为啥在单步执行 ASP.NET MVC 控制器时,我的 VS2008 调试会话总是退出?【英文标题】:Why does my VS2008 debugging session always quit on me when stepping through ASP.NET MVC controllers?为什么在单步执行 ASP.NET MVC 控制器时,我的 VS2008 调试会话总是退出? 【发布时间】:2010-12-01 10:59:58 【问题描述】:我在 Windows 7 Ultimate x64 RTM 上运行 Visual Studio 2008 Professional SP1。我正在使用从 Web 平台安装程序获得的 ASP.NET MVC。
当我单步执行我的程序并在任何一行暂停超过几秒钟时,调试器突然停止,并且在调试输出中打印以下消息:
程序“[4232] WebDev.WebServer.EXE: Managed”已退出,代码为 0 (0x0)。
这种情况并非 100% 发生,但通常足以令人非常沮丧。这种行为也发生在 W7 RC 版本中,但从未在 Windows XP Pro x86 下发生。
【问题讨论】:
你所有的 MVC 项目都这样做吗? 您是否使用了任何可能会超时的 WCF 组件? @Matt 是的,所有这些。在其中两个中使用 Unity 作为我的 IoC 容器,其他的只是股票 MVC。在两个不同的 W7 安装中始终如一地发生。 @Terry Donaghe:任何项目中都没有 WCF。 新工作站,新安装W7 Ultimate,新安装VS2010,MVC 3等,问题就解决了。耶! 【参考方案1】:很难说发生了什么,但如果这发生在我身上,我要做的第一件事就是点击 Debug-> Exceptions,然后确保在 Managed Debug Assistants 和 Common Language Runtime 下检查所有可能的罪魁祸首例外。
【讨论】:
【参考方案2】:IIS 对托管您网站的进程有一个 ping 超时。我认为默认是 90 秒。
在 IIS 中,右键单击正在运行您的应用程序的应用程序池,然后选择“高级设置...”。向下滚动到“Ping 最大响应时间”并将其更改为更大的值。在我的开发机器上,我使用 600,即 10 分钟。
【讨论】:
我使用的是 VS 附带的 ASP.NET 开发服务器,而不是 IIS。您的评论是否仍然适用? 嗯我不认为它适用于这种情况。以上是关于为啥在单步执行 ASP.NET MVC 控制器时,我的 VS2008 调试会话总是退出?的主要内容,如果未能解决你的问题,请参考以下文章
为啥通过 jQuery Ajax 将 Plaid 链接结果发布到 ASP.NET MVC 控制器时缺少属性数据?
为啥尾随 %20 (在这种情况下为有效数据)会杀死 asp.net mvc 路由
在ASP.NET MVC3中 重写Controller 控制器的构造函数中 其中读取Session时为啥Session为空?