zoukankan      html  css  js  c++  java
  • 【点滴积累,厚积薄发】windows schedule task中.exe程序的路径问题等问题总结

    1.在发布ReportMgmt的Job时遇到一个路径问题,代码如下:
    doc.Load(@"ConfigurationBusinessusiness.config");
     
    这种写法是相对路径,由于不同的帐户在运行.exe程序时,其工作目录(Working Directory)各不相同,cmd所在路径是c:WindowsSystem32\,因此它默认去这里找文件“c:WindowsSystem32ConfigurationBusinessusiness.config”,所以是错误的。
     
    正确的写法是:
    var bizConfigPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"ConfigurationBusinessusiness.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();
                }
  • 相关阅读:
    函数式宏定义与普通函数
    linux之sort用法
    HDU 4390 Number Sequence 容斥原理
    HDU 4407 Sum 容斥原理
    HDU 4059 The Boss on Mars 容斥原理
    UVA12653 Buses
    UVA 12651 Triangles
    UVA 10892
    HDU 4292 Food
    HDU 4288 Coder
  • 原文地址:https://www.cnblogs.com/fuhongwei041/p/5129909.html
Copyright © 2011-2022 走看看