2011-09-29 41 views
1

我做了一個C#控制檯應用程序,需要2個配置文件來啓動。 當我從cmd窗口運行它時,它運行良好 - 找到2個配置文件(它們放在exe生成的目錄中)。Windows Server任務計劃程序需要文件在System32文件夾中?

然而,使用Windows服務器任務調度時,我得到一個錯誤時拋出 - 「找不到文件‘C:\ WINDOWS \ SYSTEM32 \ field.config’」

我試着用了一個bat文件任務但出現同樣的問題 - 任務計劃程序嘗試在System32中找到文件direcory。

在System32 direcory中放置兩個配置文件是一種解決方法,但有沒有其他方法? 谷歌搜索類似的問題,但沒有任何信息。 任何幫助mutric appriciated。

+0

這個ir比較奇怪......對於需要顯示相關源代碼的地方,您可以在那裏獲取這些文件 – Yahia

+0

您的批處理文件是否將目錄更改爲相關目錄,或者您只是調用c:\ somedir \ myprog。可執行程序 ? – BugFinder

+0

謝謝你們花時間回答 - 使用完整路徑作爲目前最好的解決方法..mayde任務Sheduler有一種方法來指定工作目錄.. – Nikos

回答

1

沒有實際的代碼看,讓我做一個有教養的猜測。在你的應用程序中,你試圖用相對於可執行文件的路徑打開這些文件(比如說:field.config)。設置計劃任務時,您沒有正確配置工作目錄;那麼應用程序將以System32作爲工作目錄執行,這就是爲什麼它在那裏查找文件。

+0

就是這種情況..-但你不能專門在TaskCheduler中定義工作目錄。你只需通過給出可執行文件的位置來定義'Action'(C:\ www.Buldoz.com \ Updater \ SolrUpdater.Console \ bin \ Debug \ solrupdater.exe),這應該是Task Scheduler的工作指導 - 但它不是。它似乎是System32,因爲它在那裏尋找配置文件。 – Nikos

+1

@Nikos:真的嗎?我確定必須有一種方法來指定工作目錄。無論如何,您總是可以重寫您的應用程序,以使用基於模塊路徑的完整路徑。 –

+0

我會再次嘗試找到是否有辦法在Task Scheduler中定義工作目錄 - 但是,是的,這就是我現在正在做的 - 使用完整路徑並在App.config中將其定義爲清除。你非常想回答.. – Nikos

11

我知道這是古老的,但我想我會把我的發現放在這裏,因爲任何人都在這個絆倒。

在屬性>操作上,它似乎是操作編輯屏幕上的「開始(可選)」字段,您在其中輸入您想要工作目錄所在的目錄。

+0

謝謝!無論如何,我不明白這種行爲。 Windows Server 2003的行爲不同,默認情況下使用「正確的」工作目錄。 – timmkrause

+3

這應該被標記爲答案 –

+0

總是一些簡單的... – Milne

相關問題