我正在处理一个非常大的MVC4项目。
使用Windows 7 64位操作系统,.NET Framework 4.5和Visual Studio 2012 Premium SP1。
我在公司环境中工作,每晚机器都会更新。4/22那天晚上,我把电脑留在了VS运行但没有执行任何代码的状态下。4/23早上,我继续昨晚的工作,但是机器响应时间似乎很慢,所以我重启了电脑。在重启后,当我尝试调试时出现了以下错误信息:
VS弹窗提示:WebDev.WebServer40.exe已停止工作。 网页:此页面无法显示。
Fiddler显示了以下消息:
[Fiddler] 连接到'localhost'失败。 错误:ConnectionRefused (0x274d)。 System.Net.Sockets.SocketException 由于目标计算机积极拒绝,无法建立连接 [::1]:51043
Windows应用程序日志显示了以下错误:
故障应用程序名称: WebDev.WebServer40.exe, 版本: 11.0.50727.1, 时间戳: 0x5011ca7e 故障模块名称: ole32.dll, 版本: 6.1.7601.17514, 时间戳: 0x4ce7b96f 异常代码: 0xc0000005 故障偏移量: 0x000408a7 故障进程 ID: 0x280 故障应用程序启动时间: 0x01cf60dbe460d837 故障应用程序路径: C:\Program Files (x86)\Common Files\Microsoft Shared\DevServer\11.0\WebDev.WebServer40.exe 故障模块路径: C:\Windows\syswow64\ole32.dll 报告 ID: 22f43805-cccf-11e3-866d-00270e269f58
注意:看起来是ole32.dll有问题。经过检查,我发现有几个版本存在已知错误,但是没有一个版本完全匹配6.1.7601.17514,所以我一直谨慎地考虑是否替换它。
通过与网络工程师合作,我确定问题出在VS中。使用Ctrl-F5可以运行应用程序,并且WebDev.WebServer40.exe会出现在进程列表中。使用F5时,WebDev.WebServer40.exe会短暂地出现在进程列表中,然后在错误出现时消失。从浏览器中调用该应用程序也可以正常运行,但是如果我使用F5进行调试,则WebDev.WebServer40.exe会从进程列表中消失。
我尝试过以下方法:
- 修复了.NET Framework 4.5.1
- 清理了Visual Studio的临时文件
- 运行其他应用程序以确定是否是应用程序的原因。我机器上的所有其他应用程序都以同样的方式失败
- 删除浏览器cookie
- 在Hosts文件中添加/删除localhost条目
- 尝试修复VS2012,但会生成错误消息:(1)日志文件已满和(2)未安装某些功能
我的同事和我已经没有任何想法,我准备完全卸载VS2012并重新安装,这需要花费时间、精力和风险,除非其他人有更清晰的想法来解决问题。
提前感谢任何建议。