【点滴积累,厚积薄发】windows schedule task中.exe程序的路径问题等问题总结

1.在发布ReportMgmt的Job时遇到一个路径问题,代码如下:
doc.Load( @"Configuration\Business\business.config");
 
这种写法是相对路径,由于不同的帐户在运行.exe程序时,其工作目录(Working Directory)各不相同,cmd所在路径是c:\Windows\System32\,因此它默认去这里找文件“ c:\Windows\System32\ Configuration\Business\business.config”,所以是错误的。
 
正确的写法是:
var bizConfigPath = Path.Combine( AppDomain.CurrentDomain.BaseDirectory, @"Configuration\Business\business.config");
doc.Load(bizConfigPath);
 
 
2.我们的控制台程序,没有使用Console.ReadKey或 Console.ReadLine阻塞,所以在发起异步写日志服务调用后,有可能就被结束了(因为Logger.LogAsync内部用了新的线程(TaskFactory),线程的从创建到运行还是有一定调度成本的,所以可能进程被关闭时,线程还没来得及被调用),导致写日志服务没有成功被调用。
 
一种有效的写法是在调用时加Wait,等待它执行完成。
catch (Exception err)
            {
                Logger.LogAsync(new LogEntrySetting() 
                {
                    CategoryName = "Job-CMS"
                    , SubCategoryName = "Report"
                    , Content = err.ToString()
                    , LogUserName = "DeilyDetailJob"
                }) .Wait();
            }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值