2012-01-10 170 views
2

我有一個建立一個小工具的需求,它啓動一個sql查詢來獲取用戶電子郵件地址列表併發送電子郵件給計劃每天執行的郵件。在C#中執行計劃任務

我想知道什麼可能是在.NET

我的工作在VS2010的溢價,才能執行此C#4.0

+1

最好的辦法是使用SQL代理直接在數據庫服務器上安排任務(我假設這裏有一個MS堆棧和SQL Server)。 – Yuck 2012-01-10 16:44:08

+0

對於電子郵件看看使用SMTP System.Net.Mail查詢看看創建一個存儲過程,您的服務工作,對於實際的Windows服務..你可以通過.dll或控制檯應用程序來做到這一點。您的應用程序中將包含3個基本組件。如果你這樣做的.EXE看看System.Diagnostics和Process和ProcessInfo類..如果你的數據庫處理電子郵件/發送電子郵件,你可以通過創建一些數據庫腳本一次完成所有這些,包等。 – MethodMan 2012-01-10 16:45:04

回答

2

的好辦法那要看你的需求。

我想你可以創建一個封裝這個行爲,你可以使用Windows計劃任務

2

您應該使用task scheduler安排任務控制檯應用程序,並讓它運行你的程序,每天一次。

另一種方法可能是編寫一項服務,等待一天中的某個時間並執行這個簡單的任務,但這似乎有點過於霸道,除非您將來有更多此服務的計劃。 (因此,例如,您希望服務能夠發送電子郵件,執行一些數據庫維護,在某個端口上偵聽等)

讓應用程序在後臺全時運行以執行如此簡單的任務't 似乎就像是一個很好的方法去做。停止應用程序的方式太多了。

1

.net對於這一點將會很好。我建議編寫一個控制檯應用程序來執行您所需的操作,並使用Windows Task Scheduler以您選擇的時間間隔運行您的應用程序。

2

用任何你想要的語言或平臺編寫應用程序,然後使用Windows Task Scheduler使應用程序按照你的時間表運行。通過這種方式,您可以將您的應用程序專注於其核心內容(獲取內容,發送電子郵件),並讓Microsoft擔心創建穩健計劃服務的細節。

1

你需要把它寫在.net中?

如果是,那麼就像已經建議的那樣去執行任務計劃程序。如果不是,那麼你也可以直接在數據庫中創建一個作業。

0

如果您想在Web環境(ASP.Net)中執行此電子郵件過程,您可以使用ATrigger調度服務。 A .Net library也可用於創建計劃任務而不會產生開銷。

聲明:我是他們的團隊之一。