【问题标题】:"Access to the path 'a-guid.8Event' is denied." at startup“访问路径 'a-guid.8Event' 被拒绝。”启动时
【发布时间】: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


    【解决方案1】:

    您的问题被标记为 C#,但例外似乎是 VB。对吗?

    我在程序启动时看到了类似的异常(不同的 guid),我使用Process Monitor 来查找违规者。在我的例子中,它涉及 CLR 访问被最终用户的防病毒软件阻止的注册表项。

    【讨论】:

    • 感谢您的回复。我在我的 C# 程序中使用 Microsoft.VisualBasic.dll 来利用 WindowsFormApplicationBase 来实现单个实例。我不太确定它与它有关。我没有考虑过防病毒。我希望我有一个复制它的盒子。不幸的是,该指南不在我的注册表中。谢谢你的提示!
    • 进程监视器会告诉您正在访问的确切内容:文件、注册表或其他任何内容。
    猜你喜欢
    • 2016-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多