服务器上调用 批处理、程序集的那些事
近来赶着客户要项目预览(平时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(); process.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"/>
这样可能看起来很突兀,微软给出的加密方案是,在注册表设置其值,在配置文件节点设置对应路径即可。
记录下此次踩过的坑
大家好,我是新来的小白,文未佳,却已创。转载请声明(博客园-郎中令)出处,谢谢
---市人皆大笑,举手揶揄之(手动链接博客园)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?