2013-03-02 65 views
3

我有一個免費發佈的C#WinForms應用程序。我設置了一個最小的崩潰服務器,以便在實例崩潰時收到堆棧跟蹤和一些硬件細節。 我的一些用戶遇到了無法複製的崩潰,也無法在線找到解決方案(稍後)。「訪問路徑'a-guid.8Event'被拒絕。」在啓動時

異常類型是:System.UnauthorizedAccessException btw:我的應用程序不需要是管理員,可以由普通用戶運行。

異常信息(英語,我也有其他三種語言)是:

訪問路徑 '6cbb4993-b127-4668-937e-f64c83b6e6b30.8Event' 被拒絕。

正如您所看到的,路徑看起來並不像路徑,它更像是一個guid。 guid不會改變,所有用戶都是一樣的。我懷疑它在某種程度上與我的應用程序綁定,但我無法在文件系統或註冊表中找到此類值。

堆棧跟蹤是:

在System.IO .__ Error.WinIOError(的Int32的errorCode,字符串maybeFullPath)
在System.Threading.EventWaitHandle..ctor(布爾的初始化狀態,EventResetMode模式,字符串名稱,布爾& createdNew,EventWaitHandleSecurity eventSecurity)
在Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(字符串[] COMMANDLINE)
在VisualSEO.WinFormGui.Program.Main(字串[] args)

一些遇到問題的用戶看起來已經成功地啓動了程序(他們已經很友好地聯繫我,但無法告訴我如何重現問題),其他人卻沒有(我沒有與他們直接聯繫,因爲我沒有要求註冊使用該程序,所以我不能問他們,但我知道他們沒有再次啓動它,因爲我使用硬件標識符跟蹤更新請求)。

當然,我做了我的功課,並在網上搜索。 我發現的唯一類似的東西是:

在專家交流(我不能發佈網址)我傢伙有一個類似的錯誤信息和不同的指導問題。他使用Windows XP並寫道:「重新啓動解決了問題」。 我的一些用戶 - 正如我所說 - 成功地重新啓動,但這不是「解決方案」。 爲了記錄在案,受影響的用戶到目前爲止有以下操作系統:

  • 的Win7 SP1
  • WinServer 2088標準SP2
  • Win8的

在這裏,他們也有類似的error message
他們是一個開源項目,我也可以看到 fix they did
他們的修復不幸只是一個很糟糕的實現編解決方法: 他們認爲語言始終爲英語(在我的情況,我總是設置文化線程英文記錄該exception.Message之前,但它僅適用,如果用戶安裝還安裝了英語字典,而且在許多情況下,他們都沒有) 另外他們的診斷對我的情況沒有幫助: 他們認爲問題是由另一個用戶帳戶中已經運行的客戶端實例引起的(可能在他們的情況下是正確的);我測試了它,那不是我的情況。

我找不到根本原因。我正在用盡想法。 有沒有人在過去解決過類似的問題?

回答

1

您的問題被標記爲C#,但異常似乎是VB。那是對的嗎?

我看到在程序啓動了類似的異常(不同的GUID),我用Process Monitor找到罪犯。在我的情況下,它涉及CLR訪問被最終用戶的防病毒攔截的註冊表項。

+0

謝謝您的回覆。 我在我的C#程序中使用Microsoft.VisualBasic.dll來利用WindowsFormApplicationBase實現單個實例。我不確定它與它有關。 我沒有考慮過反病毒。我希望我有一個複製它的盒子。不幸的是,我的註冊表中沒有GUID。謝謝你的提示! – 2013-03-05 20:42:39

+0

進程監視器會告訴你真實被訪問正是:文件,註冊表,或什麼的。 – RoadWarrior 2013-03-05 23:28:43