小编Jos*_*shF的帖子

.NET应用程序崩溃,没有调试信息

我有一个备份程序,目前在我们的企业环境中运行大约70台机器.笔记本电脑,台式机和Windows(xp-32,vista-32,vista-64,7-32-7-64)的混合物没有任何问题.

有一个例外,这就是我在这里寻求帮助的原因.

在安装了.Net 4 Framework的运行Windows 7 64位的Dell Latitude计算机上,控制台应用程序将在启动Sub Main之前立即崩溃.它只是给通用窗口错误"一个问题导致程序停止正常工作".没有选项可以查看调试信息.

我尝试过的事情:
- 卸载所有不标准的软件
- 评论我认为可能导致问题的几个声明
- 重新编译自动CPU,x86和x64以查看它是否有所作为
- 禁用病毒扫描程序
- 用户是管理员但我试图以管理员身份运行
- 在Sub Main中添加了一个消息框,以确定它崩溃的位置
- 为所有相关代码添加了try catch

我能够从事件查看器中获取更多信息:

故障模块名称:KERNELBASE.dll,版本:6.1.7600.16385,时间戳:0x4a5bdbdf
异常代码:0xe0434f4d故障偏移量:0x0000b727

接下来的几个条目对我来说很奇怪:

错误进程id:0x%9
错误应用程序启动时间:0x%10
错误应用程序路径:%11
错误模块路径:%12

我还能够拉出.wer文件(Windows错误报告平面文件)并且它回流大部分相同的信息,但也包括一些加载的DLL和正在使用的其他文件.

感谢您花时间阅读我的文本墙,希望有人会对如何继续下去有所了解.

约书亚

编辑:

我想到以下Win32 API调用可能会导致问题,而且如果没有大量的代码重写,它们是我唯一不能轻易注释掉的东西.

如果是,为什么只在这台机器上:(

' Obtain a handle to the console application window by passing the title of your application.
Dim hWnd As Integer = Process.GetCurrentProcess().MainWindowHandle
Dim hMenu As Integer = GetSystemMenu(hWnd, False)

'WIN API Functions to assist in disabling the Close button …
Run Code Online (Sandbox Code Playgroud)

vb.net crash debugging winforms

6
推荐指数
1
解决办法
9216
查看次数

触发自定义类事件后,表单不会更新

我遇到了一个问题,即使我看到事件发生了,我的主表单也没有更新.让我解释一下这种情况并分享我的一些代码,因为我是业余爱好者,我肯定会很恐怖.

我创建了一个类来接受在后台运行进程的设置.我在该类中添加了一些自定义事件,因此我可以在我的表单中使用它而不是计时器.

我在那两个事件上休息了处理这些事件,我看到它们在安装开始后立即启动.

我查看数据并且它正在发生并且没有抛出任何异常.

起初我以为是因为datagridview有一些延迟问题.我通过我发现的一些技巧将其设置为双缓冲,但这并不重要.在数据网格中出现数据之前,仍有大约10秒的延迟.

我考虑过它并决定我真的不需要datagridview并用多行文本框替换控件,但它并没有什么区别.显示表单/文本框的更新仍需要10秒或更长时间.

我在下面提供了一些代码.

Public Shared WithEvents np As NewProcess
Run Code Online (Sandbox Code Playgroud)
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Try
            np = New NewProcess
            AddHandler np.InstallFinished, AddressOf np_InstallFinished
            AddHandler np.InstallStarted, AddressOf np_InstallStarted
        Catch ex As Exception

        End Try

    End Sub
Run Code Online (Sandbox Code Playgroud)
Protected Sub np_InstallFinished(ByVal Description As String, ByVal ExitCode As Integer)
    InstallInProcess = False

    If Not Description = Nothing Then
        If Not ExitCode = Nothing Then
            AddLog(String.Format("Completed install of {0} ({1}).", Description, ExitCode))
        Else
            AddLog(String.Format("Completed …
Run Code Online (Sandbox Code Playgroud)

vb.net multithreading class process event-handling

2
推荐指数
1
解决办法
3505
查看次数