2011-03-09 32 views
3

我有一個Windows共享主機,我需要每天創建的Sitemap運行一些計劃C#可執行文件,發送簡訊,等等的Windows共享主機 - 定製計劃任務

的供應商告訴我,我可以」出於安全原因運行可執行文件。 我可以嗎?

提供商建議我購買VPS,但不認爲花費更多資金只是爲了執行某個計劃任務是合理的。

確實存在替代方法嗎?

回答

1

在共享服務器上的asp.net頁面中實現您每天一次的任務。然後,在您有權訪問的計算機上設置一個進程,以便在計劃的時間每天請求該頁面一次。

如果每天一次的處理非常耗時,那麼您可以在頁面創建的線程中執行此操作。這將停止請求超時。

爲了防止濫用,您可能會給頁面一個晦澀的名字,通過IP地址限制訪問(如果共享服務器的控制面板允許),和/或要求請求進程進行身份驗證。該頁面還可以將上次請求時間存儲在緩存中,並且只有在上次請求後已經過了足夠的時間時才執行所需的處理。

0

這並不理想,但是您可以從基本頁面(繼承System.Web.UI.Page的頁面以及隨後的頁面繼承頁面)繼承所有頁面,並且可以在每個頁面加載(在basepage中)檢查將在特定時間範圍內運行的任務的數據庫表。如果在給定的頁面加載時,在給定時間選擇要運行的任務,並且匹配(或超過該時間)頁面被請求,那麼您可以在那時運行它。

不幸的是,這取決於網站用戶在您希望工作運行時或接近您的時間訪問您的網站。此外,另一個缺點是,如果請求該頁面的用戶可能正在等待,如果您的作業正在同步執行頁面的其餘部分。

希望這會有所幫助。

1

您可以在共享主機上使用ATrigger調度服務只需。 A .Net library也可用於創建計劃任務而不會產生開銷。您還可以通過報告面板列出任務並記錄所有可能的錯誤。

聲明:我是ATrigger團隊中的一員。這是一個免費軟件,我沒有任何商業目的。