Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在升级到.NET 4.0后,Debugger.Launch()现在正在使我的windows服务崩溃_C#_.net_Debugging_Visual Studio 2010_.net 4.0 - Fatal编程技术网

C# 在升级到.NET 4.0后,Debugger.Launch()现在正在使我的windows服务崩溃

C# 在升级到.NET 4.0后,Debugger.Launch()现在正在使我的windows服务崩溃,c#,.net,debugging,visual-studio-2010,.net-4.0,C#,.net,Debugging,Visual Studio 2010,.net 4.0,对于调试环境,我们在代码中有一个条件调试器.Launch语句,允许开发人员调试到windows服务的启动代码中。我们今天刚升级到.NET4.0。升级后,如果退出JIT窗口(即,我们选择不调试),Windows服务将崩溃(进程将终止)。它过去只是简单地恢复。如果我们接受附加,应用程序不会终止并正常工作 编辑 另一件奇怪的事情是,抛出的异常不再是用户异常的启动。它现在是一个未经处理的Microsoft.NET framework异常。我试着在它周围围上一圈,看看能得到什么。我在调试时无法捕获异常,因

对于调试环境,我们在代码中有一个条件调试器.Launch语句,允许开发人员调试到windows服务的启动代码中。我们今天刚升级到.NET4.0。升级后,如果退出JIT窗口(即,我们选择不调试),Windows服务将崩溃(进程将终止)。它过去只是简单地恢复。如果我们接受附加,应用程序不会终止并正常工作

编辑

另一件奇怪的事情是,抛出的异常不再是用户异常的启动。它现在是一个未经处理的Microsoft.NET framework异常。我试着在它周围围上一圈,看看能得到什么。我在调试时无法捕获异常,因为此时异常不会发生。如果我试图将异常记录到一个文件中,服务就会崩溃,而我什么也得不到

有办法解决这个问题吗?有什么原因吗

更多信息

我刚刚创建了一个空白的新windows窗体应用程序


        public Form1()
        {
            try
            {
                MessageBox.Show("hello");
                System.Diagnostics.Debugger.Launch();

            }
            catch
            {
                MessageBox.Show("error");
            }
            AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
            InitializeComponent();
        }

        void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
        {
            MessageBox.Show(e.ToString());
        }
我听到第一声“你好”。然后我得到一个JIT窗口,它显示“发生了未处理的Microsoft.NET异常”。如果我不连接,它会崩溃,没有消息或任何东西

我试过WinDbg什么的。我对那些工具一点也不熟悉。这是我得到的。它看起来一点用处都没有

Microsoft(R)Windows调试器版本6.12.0002.633 AMD64 版权所有(c)微软公司。版权所有。 正在加载转储文件[C:\Users\moueis\TestDebugging\u 100927\u 104956.dmp] 内存已满的用户小型转储文件:只有应用程序数据可用 评论:' ***C:\Users\moueis\Desktop\procdump.exe testdebuging.exe-e-ma ***未处理的异常' 符号搜索路径为:**无效*** **************************************************************************** *如果没有符号搜索路径,符号加载可能不可靠* *使用.symfix让调试器选择符号路径* *设置符号路径后,使用.reload刷新符号位置* **************************************************************************** 可执行搜索路径为: Windows 7版本7600 MP(8个进程)免费x64 产品:服务器,套件:终端服务器单用户 计算机名称: 调试会话时间:2010年9月27日星期一10:49:56.000(UTC-4:00) 系统正常运行时间:11天20:41:04.714 进程正常运行时间:0天0:00:22.000 ......................................... ***错误:找不到符号文件。默认为为ntdll.dll导出符号- ***错误:找不到符号文件。默认为导出KERNELBASE.dll的符号- 内核库!DebugBreak+0x2: 000007fe`fd432442 cc int 3 这在不止一台机器上发生(但是,它们非常相似)

更多信息


这显然很容易复制。它发生在内部的多个系统上,我收到了外部方的确认,通过在使用.NET 4.0的.NET windows窗体中使用上面的代码片段,可以简单地重现该问题。我遇到了同样的问题,并通过一些谷歌搜索找到了。

发布异常和异常的堆栈跟踪事件日志告诉您什么?当服务崩溃时,您可以使用Sysinternal的ProcDump实用程序(使用-e选项)进行内存转储。获得转储后,您可以将其加载到WinDbg中,并使用SOS调试器扩展调查其崩溃的原因。您可以将转储发布到某个地方吗?我没有一个容易发布转储的地方(我不相信您可以将其发布到这里,可以吗?)。然而,这个问题很容易重现。是的,我发布了:)没有解决方法,雪人认为你可能已经解决了。我想即使有其他人发现这个问题,也可能会喜欢这个链接。 Microsoft (R) Windows Debugger Version 6.12.0002.633 AMD64 Copyright (c) Microsoft Corporation. All rights reserved. Loading Dump File [C:\Users\moueis\TestDebugging_100927_104956.dmp] User Mini Dump File with Full Memory: Only application data is available Comment: ' *** C:\Users\moueis\Desktop\procdump.exe TestDebugging.exe -e -ma *** Unhandled exception' Symbol search path is: *** Invalid *** **************************************************************************** * Symbol loading may be unreliable without a symbol search path. * * Use .symfix to have the debugger choose a symbol path. * * After setting your symbol path, use .reload to refresh symbol locations. * **************************************************************************** Executable search path is: Windows 7 Version 7600 MP (8 procs) Free x64 Product: Server, suite: TerminalServer SingleUserTS Machine Name: Debug session time: Mon Sep 27 10:49:56.000 2010 (UTC - 4:00) System Uptime: 11 days 20:41:04.714 Process Uptime: 0 days 0:00:22.000 ......................................... *** ERROR: Symbol file could not be found. Defaulted to export symbols for ntdll.dll - *** ERROR: Symbol file could not be found. Defaulted to export symbols for KERNELBASE.dll - KERNELBASE!DebugBreak+0x2: 000007fe`fd432442 cc int 3