vshost.exe BEX64在窗口关闭时崩溃

时间:2014-10-17 18:24:26

标签: c# .net visual-studio-2012 ntdll vshost.exe

我正在运行带有最新更新的Visual Studio 2012和Win7上最新的ReSharper以及最新更新。 我有一个使用Entity Framework 6.1的.NET 4.5 x64 C#Topshelf 3.1.122包装项目。 无论调试器是否附加,当我通过关闭窗口退出正在运行的程序时,vshost.exe将停止工作,我将不得不强制退出它。这似乎没有明显的效果;这很烦人。这种行为只发生在我的机器上,而不是其他的Dev。如果使用红色停止按钮停止调试会话,则不会发生崩溃。 知道会导致这种情况的原因吗?

  

问题签名:问题事件名称:BEX64应用程序   名称:REDACTED.vshost.exe应用版本:11.0.50727.1
  应用程序时间戳:5011d445故障模块名称:ntdll.dll故障   模块版本:6.1.7601.18247故障模块时间戳:521eaf24
  异常偏移:0000000000072c4a异常代码:c000000d
  异常数据:0000000000000000 OS版本:6.1.7601.2.1.0.256.1
  区域设置ID:1033附加信息1:402a附加   信息2:402ac0175590edba59c75743ddb69b2f附加   信息3:e38f附加信息   4:e38f53f34d74d36ff87488c7f8d2b32e

这是Topshelf包装代码供参考:

    private static void Main()
    {
        HostFactory.Run(
            x =>
            {
                x.Service<Foo>(s =>
                {
                    s.ConstructUsing(name => new Foo());
                    s.WhenStarted(svc => svc.Start());
                    s.WhenStopped(svc => svc.Stop());
                    s.WhenShutdown(svc => svc.Stop());
                });
                x.RunAsLocalSystem();
                x.SetDescription(ServiceInfo.Description);
                x.SetDisplayName(ServiceInfo.DisplayName);
                x.SetServiceName(ServiceInfo.ServiceName);
                x.EnableShutdown();
            });
    }

如果我在main的末尾或svc.Stop方法的开头放置一个断点,当我关闭窗口时调试器不会中断,vshost.exe会立即崩溃。无论如何,我无法看到我如何能够解决这个问题。

更新: 我使用WinDbg附加到vshost进程,最后得到了实际的异常:

ntdll!DbgBreakPoint:
00000000`76ef0590 cc              int     3
0:022> g
ModLoad: 000007fe`f7fe0000 000007fe`f7fee000   C:\Windows\system32\wbem\wbemprox.dll
ModLoad: 000007fe`f81f0000 000007fe`f826d000   C:\Windows\system32\wbemcomn2.dll
(3c70.22e8): Unknown exception - code c000000d (first chance)
(3c70.22e8): Unknown exception - code c000000d (!!! second chance !!!)
ntdll!RtlIsDosDeviceName_U+0x1922a:
00000000`76f12c4a 4c8b1d87f70b00 mov     r11,qword ptr [ntdll!NlsAnsiCodePage+0x13e (00000000`76fd23d8)] ds:00000000`76fd23d8=0000000000000000

0 个答案:

没有答案