码迷,mamicode.com
首页 > 其他好文 > 详细

服务器上调用 批处理、程序集的那些事

时间:2017-12-04 20:30:25      阅读:103      评论:0      收藏:0      [点我收藏+]

标签:ges   UI   info   管理   情况   art   txt   directory   一个   

   近来赶着客户要项目预览(平时sa不闻不问,优哉游哉),着实体验了一把加班狗的日常生活,以致刘海遮住了眼睛,人也显得憔悴了许多。关于排程、调度这块,之前也没有接触过,客户急等着要看,这块的项目非我负责,没办法,全都压在我身上,前期项目无法运行,倒是填坑话费了大量时间,好在头发还没掉...

        比如:一般调用 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的效果

但是将其发布到服务器上时,外网访问操作,未执行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"/> 

这样可能看起来很突兀,微软给出的加密方案是,在注册表设置其值,在配置文件节点设置对应路径即可。

 

 记录下此次踩过的坑

服务器上调用 批处理、程序集的那些事

标签:ges   UI   info   管理   情况   art   txt   directory   一个   

原文地址:http://www.cnblogs.com/Sientuo/p/7978494.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!