文章出處
文章列表
近來趕著客戶要項目預覽(平時sa不聞不問,優哉游哉),著實體驗了一把加班狗的日常生活,以致劉海遮住了眼,人也憔悴了許多。關于排程、調度這塊,之前也沒有接觸過,客戶急等著要看,這塊的項目非我負責,沒辦法,全都壓在我身上,前期項目無法運行,倒是填坑話費了大量時間,雖然已經加入 90后中年大軍,近期又是高強度共工作,好耐頭發還沒掉...
比如:一般調用 exe
Process ps = new Process(); ps.StartInfo.FileName = strPath; ps.Start(); ps.WaitForExit();
其實調試的時候,并未執行,查了下微軟的方法,發現還有不少參數需要配置
string str = @"D:\PC_file\BatQuick\"; Process process = new Process(); //exe 文件名 process.StartInfo.FileName = "NewTxtlog.exe"; //exe 文件夾路徑 process.StartInfo.WorkingDirectory = str; process.StartInfo.CreateNoWindow = true; process.Start(); ps.WaitForExit();
以上設置可以達到鼠標點擊exe的效果(注:若要傳遞參數,添加屬性 ps.StartInfo.Arguments = args 即可)
但是將其發布到服務器上時,外網訪問操作,未執行exe,這種情況的話只需要登錄服務器,選中exe文件,右鍵,安全性,添加讀寫權限即可
如果恰巧遇到的 可執行exe文件 是安裝某個新的自定義服務,那這樣的話,以上操作就是無效的,這時有一個簡單的操作方法,先用管理員的身份登錄進服務器,安裝此服務,然后在web端判斷此服務,如未開啟,則重啟啟動即可,如此需要更改兩處代碼
ServiceController service = new ServiceController(NewServiceName); if (service.Status == ServiceControllerStatus.Running) { service.Stop(); service.WaitForStatus(ServiceControllerStatus.Stopped); } service.Start(); service.WaitForStatus(ServiceControllerStatus.Running); strFlag = "1";
配置文件要設置 用戶名、密碼
<identity impersonate="true" userName="UserName" password="password"/>
這樣可能看起來很突兀,微軟給出的加密方案是,在注冊表設置其值,在配置文件節點設置對應路徑即可。
記錄下此次踩過的坑
文章列表
全站熱搜