2013-05-31 71 views
-4

在事件日誌中,我得到以下行,請有人可以幫我解決這個問題。應用程序在開發機器上成功運行,但在另一臺機器上崩潰

Event Type: Error 
Event Source: .NET Runtime 
Event Category: None 
Event ID: 1026 
Date:  01/06/2013 
Time:  11:20:06 
User:  N/A 
Computer: BISO 
Description: 
Application: TMS.exe 
Framework Version: v4.0.30319 
Description: The process was terminated due to an unhandled exception. 
Exception Info: System.Security.SecurityException 

Stack: at System.ThrowHelper.ThrowSecurityException(System.ExceptionResource) 
at Microsoft.Win32.RegistryKey.InternalOpenSubKey(System.String, Microsoft.Win32.RegistryKeyPermissionCheck, Int32) 
at Microsoft.Win32.RegistryKey.OpenSubKey(System.String, Microsoft.Win32.RegistryKeyPermissionCheck, System.Security.AccessControl.RegistryRights) 
at System.TimeZoneInfo.CheckDaylightSavingTimeDisabledDownlevel() 
at System.TimeZoneInfo.TryCompareTimeZoneInformationToRegistry(TimeZoneInformation, System.String, Boolean ByRef) 
at System.TimeZoneInfo.FindIdFromTimeZoneInformation(TimeZoneInformation, Boolean ByRef) 
at System.TimeZoneInfo.GetLocalTimeZone()  
at System.TimeZoneInfo.get_Local() 
at System.DateTime.ToLocalTime() 
at System.DateTime.FromFileTime(Int64) 
at System.Timers.ElapsedEventArgs..ctor(Int32, Int32) 
at System.Timers.Timer.MyTimerCallback(System.Object) 
at System.Threading._TimerCallback.TimerCallback_Context(System.Object) 
at System.Threading.ExecutionContext.runTryCode(System.Object) 
at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode, CleanupCode, System.Object) 
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) 
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) 
at System.Threading._TimerCallback.PerformTimerCallback(System.Object) 

欲瞭解更多信息,請參閱幫助和支持中心http://go.microsoft.com/fwlink/events.asp

+2

你有沒有參與這是任何代碼在另一臺機器上運行的任何防病毒/安全軟件? 您可以在機器上安裝遠程調試器嗎? –

+2

看起來像你沒有權限閱讀註冊表 –

+1

看起來像你有開發計算機上的註冊表,你沒有另一臺 - 它是相同的帳戶/權限? – Andrew

回答

1

您有2個問題我可以看到。

  1. 當你在自己的機器上運行它,它在應用程序運行作爲有權限訪問註冊表中的帳戶,但是你錯過了另一臺機器上此權限。當你在另一臺機器上運行它時,你可以嘗試以管理員身份還是以升級的權限運行它?

  2. 您的代碼Timer_Elapsed方法中沒有足夠的異常處理來嘗試/捕獲並處理異常,因此它會崩潰整個應用程序。

還要檢查是否有可能被沙盒應用程序或阻止訪問註冊表

+0

另一種可能性是這裏這個答案:http://stackoverflow.com/questions/4692644/asp-net-site-throwing-a-system-security-securityexception/4695303#4695303 –

+0

T其實在我的應用程序,我沒有嘗試任何在哪裏訪問註冊表值既不試圖在任何地方更改註冊表值。我在timer_elapsed事件中做的唯一事情就是爲串口上的ARM7控制器編寫命令,並使用DateTime.now()函數獲取響應並獲取系統時間。但非常感謝你的快速回應和幫助。 –

+0

你不是,但.NET框架是。如果您在調用System.DateTime.FromFileTime(Int64)時讀取堆棧跟蹤,它會調用本地時間,而這又必須從註冊表中獲取本地化設置。這是通話失敗的地方。在我之前評論中的問題中,另一個用戶由於註冊表jey –

相關問題