我有一个免费分发的 C# WinForms 应用程序。我设置了一个最小崩溃服务器,这样当实例崩溃时,我会收到堆栈跟踪和一些硬件详细信息。我的一些用户遇到了我无法复制的崩溃,我也无法在线找到解决方案(稍后会介绍)。
异常类型是:System.UnauthorizedAccessException 顺便说一句:我的应用程序不需要是管理员,可以由普通用户运行。
异常消息(英文,我也有其他三种语言)是:
拒绝访问路径“6cbb4993-b127-4668-937e-f64c83b6e6b30.8Event”。
如您所见,路径根本不像路径,它更像是一个向导。guid 不会改变,所有用户都一样。我怀疑它以某种方式绑定到我的应用程序,但我无法在文件系统或注册表中找到这样的值。
堆栈跟踪是:
在 System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
在 System.Threading.EventWaitHandle..ctor(Boolean initialState, EventResetMode 模式, String name, Boolean& createdNew, EventWaitHandleSecurity eventSecurity)
在 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run (String[] commandLine)
在 VisualSEO.WinFormGui.Program.Main(String[] args)
一些遇到问题的用户看起来他们后来成功启动了程序(他们很友好地与我联系,但无法告诉我如何重现问题),其他人没有(我没有与他们直接联系,因为我不要求注册才能使用该程序,所以我不能问他们,但我知道他们没有再次启动它,因为我使用硬件标识符跟踪更新请求)。
当然,我做了功课并在网上搜索。我发现的唯一类似的事情是:
在专家交流(我无法发布网址)上,我遇到了类似错误消息和不同 guid 的问题。他使用的是 Windows XP,并写道“重新启动解决了问题”。我的一些用户 - 正如我所说 - 成功地重新启动,但这不是“解决方案”。作为记录,到目前为止,受影响的用户具有以下操作系统:
- Win7 SP1
- WinServer 2088 标准 SP2
- Win8
在这里他们有一个类似的错误消息
他们是一个开源项目,我也可以看到
他们所做的修复他们
的修复很遗憾只是一个实施得很糟糕的解决方法:他们假设语言总是英语(在我的情况下,我之前总是将文化线程设置为英语记录 exception.Message,但它仅在用户安装还安装了英文词典时才有效,并且在许多情况下它们没有)而且他们的诊断对我的情况没有帮助:他们认为问题是由他们的另一个实例引起的客户端已经在另一个用户帐户中运行(在他们的情况下可能是正确的);我测试了它,这不是我的情况。
我找不到根本原因。我的想法不多了。过去有没有人解决过类似的问题?