文章出處

   近來趕著客戶要項目預覽(平時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"/> 

這樣可能看起來很突兀,微軟給出的加密方案是,在注冊表設置其值,在配置文件節點設置對應路徑即可。

 

 記錄下此次踩過的坑


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()