【发布时间】:2013-02-17 05:38:00
【问题描述】:
我有一个免费分发的 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
在这里他们有一个类似的error message
它们是一个开源项目,我也可以看到
fix they did
不幸的是,他们的修复只是一个实施不当的解决方法:
他们假设语言始终是英语(在我的情况下,我总是在记录异常之前将文化线程设置为英语。消息,但它仅在用户安装还安装了英语词典时才有效,并且在许多情况下它们不是)
他们的诊断也对我的情况没有帮助:
他们认为问题是由他们的客户端的另一个实例已经在另一个用户帐户中运行引起的(在他们的情况下可能是正确的);我测试过,这不是我的情况。
我找不到根本原因。我的想法不多了。 过去有没有人解决过类似的问题?
【问题讨论】:
标签: c# .net winforms exception