0
我想在我發佈這些文件的IIS服務器上通過CMD執行一個.bat文件。我將批處理文件放在解決方案的App_Data目錄中,並將其設置爲「始終複製」,即從部署中將其放在IIS上。通過CMD執行.bat文件,asp.NET MVC 4
我也有一個網站(.cshtml),如果我打電話給這個網站,它應該繼續與批處理文件的cmd。我做到了這一點與此代碼:
string filePath = HttpContext.Current.Server.MapPath("~/App_data/Auto_Deploy_" + branch + ".bat");
ProcessStartInfo procStartInfo = new ProcessStartInfo("cmd.exe", "/c " + filePath);
procStartInfo.WorkingDirectory = "C:\\";
procStartInfo.RedirectStandardOutput = true;
procStartInfo.UseShellExecute = false;
procStartInfo.CreateNoWindow = false;
procStartInfo.RedirectStandardError = true;
if (Environment.OSVersion.Version.Major >= 6)
{
procStartInfo.Verb = "runas";
}
procStartInfo.FileName = "cmd.exe";
我開始行動:
Process proc = new Process();
proc.StartInfo = processStartInfo;
proc.Start();
proc.WaitForExit();
我也產生了app.manifest和編輯的行
<requestedExecutionLevel>
到
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
因爲我認爲,那它d以管理員權限完成。
如果我從本地主機(在服務器上)連接到網站,我直接進入網頁並運行此腳本,並將輸出和錯誤發佈到屏幕上。
我總是得到同樣的錯誤:
Das System kann den angegebenen Pfad nicht finden.
(The system could not find path.)
你能告訴我問題出在哪裏?
這聽起來像一個可怕的黑客,你確定運行批處理文件是唯一的方法來做你需要達到什麼? – DavidG 2014-10-30 11:29:45
@DavidG: 感謝您的快速響應。 問題是,我們有一個GIT存儲庫,並且想要執行一個自創的自動部署。 我們在另一臺服務器上向我們的GIT-repo提交了一些東西。 Git-Repo使用GET-Parameter向我創建的ASP.NET網站發送一個簡單的webhook。 此站點現在應運行批處理文件,該文件會刪除服務器上本地的舊回購站,下載新的回購站並將其部署到IIS。 – Marius 2014-10-30 11:32:07
所以你想讓你的網站部署你的網站?聽起來有點像我的啓示! :) – DavidG 2014-10-30 11:33:05