2012-12-24 59 views
4

我創建了一個c#控制檯應用程序,我試圖在sql server作業上運行它。與sql server作業代理運行.exe時訪問被拒絕

我將類型爲「操作系統」,並且命令文本:

"C:\Users\Admin\Documents\Visual Studio 2010\Projects\JobsApp\JobsApp\obj\x86\Release\JobsApp.exe" 

當我運行的作業,我得到這個:

作爲用戶執行:NT服務\ SQLSERVERAGENT。未處理的異常:System.IO.FileLoadException:無法加載文件或程序集'FeedLibrary,版本= 1.0.0.0,Culture = neutral,PublicKeyToken = null'或其依賴項之一。訪問被拒絕。

所以我給的dll SQLSERVERAGENT訪問,但現在我得到這樣的:

作爲用戶執行:NT服務\ SQLSERVERAGENT。無法爲作業0x3E702A92E3799D4995984DF6641604F2的第1步創建該進程(原因:訪問被拒絕)。該步驟失敗。

我很困惑。是否有需要訪問的不同文件?我究竟做錯了什麼?

我使用的是SQL Server 2012中創建和使用Visual C#2010年快遞

感謝exe文件。

+0

@KenWhite謝謝!添加這個答案作爲答案,我會標記它。 – Rivka

+0

好的。我已經這樣做了。 :-) –

回答

3

您的應用程序位於C:\ Users \ Admin文件夾(爲什麼????),因此需要某人以Admin的身份登錄或專門授予對該文件夾的訪問權限才能運行它。看起來(謝天謝地)SQLSERVERAGENT沒有運行管理員權限。

+0

關於你最後的聲明,這是不好的? http://serverfault.com/questions/460825/package-run-on-sql-server-job-agent-login-failed-for-user#460852將其更改爲管理員是獲得該工作的唯一方法... – Rivka

+0

允許管理員訪問*管理員用戶以外的*任何內容都不好。它通過擁有一個管理員帳戶來挫敗限制訪問權限的全部目的。您的應用程序不應位於具有管理權限的文件夾中(並且您不應允許其他任何人以管理員權限運行)。該應用程序應運行在有限制權限的地方 - 這是絕對必須運行的最有限權利。另外做的事情就好像已經在房子裏面的竊賊鎖上了你的前門。 :-)這裏有幾十個關於安全和UAC的帖子;你可能想做一些研究。 :-) –

相關問題