2012-07-06 82 views

回答

9

你可以有在Global.asax的的Application_Start一個計時器,但因爲你需要做的的應用程序定時器啓動的請求,這是不是很靈活。有危險在做它雖然這樣,通過Haacked詳見:

做的更好的辦法是有,它作爲一個接口,你的ASP.NET Web服務應用和有計劃間隔調用您的Web服務的窗口服務:

更多細節在這裏:

+3

如果您無法訪問服務器(假設它由第三方託管)並且無法安裝Windows服務,那麼您可以使用ASP.NET緩存來僞造一個服務器:http://www.codeproject.com/Articles/12117 /模擬Windows服務使用ASP-NET-to-run-sc – 2012-07-06 01:56:45

+0

在我的特殊情況下,我可以請求啓動應用程序。您的網絡服務理念雖然很好,但對於我的問題的一般情況,絕對是一個更合適的答案。非常感謝! – carlbenson 2012-07-07 01:52:50

+0

@ChrisSinclair是100%的現貨。你不應該開發,你的心態是你可以完全訪問公司資源或客戶資源。一切都應該是可移植的和可擴展的,因此ASP.net緩存解決方案是唯一的出路。 – Fandango68 2017-03-07 05:07:18

-1

System.Timers.Timer對象放入Application_Start()Global.asax

http://msdn.microsoft.com/en-us/library/system.timers.timer.aspx

+1

您可以通過22秒打敗我,但我實際鍵入的東西:) – 2012-07-06 01:47:21

+0

不是一個很好的主意。一個ASP.Net應用程序可能已關閉(通常是託管Web服務器的配置,應用程序在一段時間不活動後關閉,並且僅在收到新請求時纔開始)。 – 2013-06-26 12:49:11

+0

@MoizTankiwala是正確的。不是一個好主意。大多數Web服務都有超時,您可能無法控制。 Web服務器可能會崩潰。那麼什麼!?你可能需要在一個遠程服務上託管你的ASP.net頁面,這個遠程服務至少可以讓一些服務器不會停止 - 雲等等。儘量避免使用服務器內部來完成這項工作。使用緩存! – Fandango68 2017-03-07 05:09:36