當我開始在本地啓動BAT
文件帶參數所有工作正常的過程。我將這個網站上傳到一個Windows服務器,然後一個進程失敗,運行這個過程。它只是執行代碼而什麼都沒有發生。如何在.NET運行一個批處理文件(.bat),在一下機器運行,並在另一不會
我試圖UseShellExecute = false
與cmd
和不運行它...
還有什麼我可以檢查?
當我開始在本地啓動BAT
文件帶參數所有工作正常的過程。我將這個網站上傳到一個Windows服務器,然後一個進程失敗,運行這個過程。它只是執行代碼而什麼都沒有發生。如何在.NET運行一個批處理文件(.bat),在一下機器運行,並在另一不會
我試圖UseShellExecute = false
與cmd
和不運行它...
還有什麼我可以檢查?
從依賴關係開始。例如:
測試的一種方法是登錄到用於執行腳本的用戶帳戶下的服務器,以查看您是否可以自己運行該腳本。
它是完全有可能的bash腳本失敗並掛着羊頭提示用戶進行輸入。也有可能UAC處於啓用狀態,腳本需要提升權限才能執行操作。沒有看到劇本,很難說。
您幾乎肯定有安全/權限問題。檢查你的服務器的事件日誌(特別是安全事件日誌)。另外,如果可以的話,在服務器上運行SysInternals Process Monitor(procmon)也可能會有所幫助,如果沒有其他的話。
除非你已經設定了您的網站使用模擬,將使用本地,有限的帳戶下運行。對於Windows Server 2008,DefaultAppPool將使用本地IIS APPPOOL\DefaultAppPool
身份,該身份幾乎肯定無權調用bash。
它可能工作在本地開發機器上,因爲Visual Studio會爲了調試你的應用在模仿你(可能是本地管理員)。
爲了解決這個問題,您需要爲您的站點的應用程序池授予使用身份的權限,以執行bash,或者(這可能更簡單)將應用程序池的身份更改爲域用戶(或至少是本地用戶)。
嗯,我改變了游泳池到'Default Pool'並嘗試了所有游泳池,並且仍然無法使用。它實際上被調用,因爲我看到了結果(創建的目錄),但所有下一步都被取消了。我正在談論應該使用java創建apk文件的'ant'過程。在'cmd'裏它工作的很好。 – Oleg
首先,你的環境變量(比如'PATH'和'JAVA_HOME')對於你的身份(當你使用'cmd')可能會比DefaultAppPool的身份不同,確保你已經將它們設置爲系統環境變量;其次,你應該在'.bat'文件中嘗試一些診斷,確保參數(例如'%1')是你認爲應該是的,使用'@echo%1'輸出值,並使用'mybatch.bat > logfile.txt'來捕獲輸出(其中mybatch.bat是你的'.bat'文件的名稱)。 –
顯示的代碼,如果你想獲得幫助 –
你想遠程運行的程序?或在同一臺機器上? (像@SteveB寫的,顯示代碼) – eyossi
試圖在同一臺機器上運行它,在本地 – Oleg