2011-06-10 77 views
0

我開發了一個.NET服務,它在我的開發計算機上運行良好很多年了。我測試過部署它並從未遇到過任何權限問題。服務EventLogPermission失敗

當我來到服務部署到測試位置,但是,我在迎接這個錯誤:

Request for the permission of type 'System.Diagnostics.EventLogPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed. 

服務有權寫入事件日誌,因爲它實際上並寫了一些事件。

這裏可能會發生什麼?

P.S.我不準備調整任何安全區或在特殊帳戶下運行我的服務。

+2

哇。所以你問了這個問題,並在14秒內找到並輸入了答案。你太快了! :)。 – 2011-06-10 02:33:09

回答

0

問題在於服務在運行時加載了一些程序集,而在我的測試部署中,我指向使用UNC網絡共享的程序集(在應用程序配置中)。 (例如\ machine \ d $ ...) 在我的開發部署中,我使用本地絕對引用(D:......)指向它

LocalSystem帳戶擁有非常嚴格的權限,包括不能夠訪問遠程機器上的文件。另外,.Net Framework通常不喜歡運行遠程程序集。

我們知道這一點,但是在部署過程中,我的思維開始滑落。

將組裝路徑更改爲本地表單解決了此問題。