簡體   English   中英

Task Scheduler無法正確運行控制台.net程序

[英]Task Scheduler can't run console .net program correctly

我的機器:Win7 32bit,.net 4

我有一個基於.net 4的控制台程序,該程序會生成3個excel文件,並通過SMTP服務器將它們逐一發送。

當我雙擊該exe或在cmd中運行時,它可以正常運行,並使用這3個excel文件發送3封電子郵件。

但是當我把exe放在Task Scheduler中時,單擊“運行”。 僅發送了第一封電子郵件,而其他兩封電子郵件以某種方式無法發送。

任何想法?

要真正了解由Task Scheduler運行程序時發生了什么,可以將Trace語句放在代碼中至關重要的步驟上,例如:

Trace.WriteLine("Start creating mail object");

Trace.WriteLine(string.Format("Exception occured: {0}\r\n{1}", ex.Message, ex.StackTrace);

不要忘記在您的異常處理程序中放入Trace.WriteLine這樣您就可以知道出了什么問題。

您可以通過在.config文件中配置偵聽器來控制這些語句的寫入位置。

下面的示例將一個名為myListenerEventLogTraceListener對象添加到Trace.Listeners集合中。 initializeData參數指定要傳遞給EventLogTraceListener(String)構造函數的事件日志源的名稱。

<configuration>
  <system.diagnostics>
    <trace autoflush="false" indentsize="4">
      <listeners>
        <add name="myListener"
          type="System.Diagnostics.EventLogTraceListener"
          initializeData="TraceListenerLog" />
      </listeners>
    </trace>
  </system.diagnostics>
</configuration>

您可以通過轉到Start > eventvwr打開EventViewer

希望這可以幫助您找出問題所在,因為這是任何人的猜測。

問題:對.net C#控制台應用程序進行編碼,以將文檔從共享驅動器上載到SharePoint文檔庫。 以Service Acct身份登錄時,在執行過程中未發現任何問題,文件已傳輸到SP文檔庫中而沒有問題。 但是,通過任務計划程序執行時遇到“ system.io.directorynotfoundexception ....”錯誤。 另請注意,使用個人帳戶登錄服務器或通過使用我的個人帳戶執行.exe的任務計划程序時,執行代碼沒有問題。

分析:服務維修時。 被記錄在映射驅動器中的代碼是可訪問的。 但是,任務計划程序無法讀取映射的驅動器(即s:\\ xxxxx Reports \\)。

解決方法:請注意,訪問的文件來自EMC VNX Windows文件共享。 將引用文檔位置的consoleapplication代碼更改為以下路徑\\ server.com \\ vnxcifs01 \\ Saved_xxxx_Report_Outputs \\ xxxxxxxxxxx計划的報告。 進行此更改后,Rebuild exe和Task Scheduler就像一個超級按鈕一樣工作。

我希望這對從事類似環境工作的人有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM