阻止Application End事件的解決方案

2022-02-23 06:10:53 字數 1335 閱讀 5600

在做專案時,遇到同步

erp資料的問題,客戶要求是:

程式中,設定乙個開始時間,再設定乙個時間間隔,讓程式每隔一段時間匯出銷售記錄,這個開始時間和時間間隔可以手動修改設定。

這問題糾纏了我好幾天,總算解決了,寫文件記錄:

首先,要讓程式定時執行任務,可以使用

asp.net

中的timer

計時,不過這個定時不是很準,如果用它,還會遇到其他的問題,後面會提到。第二種方法是,使用乙個叫做:

quartz.net

開源專案,專門用來排程定時作業。

這次專案中,我用到的就是

quartz.net

元件,用他來定時排程作業,是很方便,不過問題也來了:當程式執行一段時間後,發現自動任務停止了。在網上查了查資料,說法不一。

後來多方查資料以及自己試驗證明:原來是**應用程式在沒有請求時,過一定的時間就會停止應用程式,具體點來說,就是**中的最後乙個

session

結束時,**應用程式就會結束。當然就會觸發

事件。隨之定時任務也會停掉。

現在的問題就是:如何讓**都有請求?如何讓

事件不會發生?

這個問題在網上也有很多種說法,比如有人建議:在

中用程式模擬請求**,重新開始

事件,也給出了程式**:

這裡有詳細說明。不過我照博主的做法,並沒有實現我想要的功能。不過他是用來處理

iis應用程式池**的問題的。孟子e

章說:新建乙個獨立的執行緒來排程執行的任務,個人認為比較麻煩,沒採用這種方式。

最後,發現了乙個簡單的處理方式,利用

asp.net

的快取超時技術。下面具體來闡明,

基本思路:

在應用程式啟動時,用程式快取乙個**中的頁面。在快取網頁時,設定好快取過期時間,以及快取過期時觸發的**事件,快取過期時觸發的**事件這是關鍵。在快取過期時用程式模擬請求**頁面,再次快取,迴圈之

**說明:(全在

global.asax

裡)這樣,**應用程式就可以像執行windows服務一樣,在後台默默的執行了,沒看明白,可以參見這裡:

附:quartz.net

詳細教程參見:

①官方教程:

;②中文翻譯:

阻止事件冒泡,阻止預設事件

阻止事件冒泡 html 冒泡事件測試 js table click function td click function span click function e 如果js中不加 e.stoppropagation 那輸出結果就依次為span td table。這就叫事件冒泡。就是從下到上,從裡到...

阻止預設行為 阻止右鍵選單和阻止超連結預設行為

1.阻止右鍵選單 官方的右鍵選單 document.oncontextmenu function 實現自定義的右鍵選單,滑鼠按下 按下的是右鍵,在右鍵這個位置顯示選單 如果是按下別的選單,選單消失 var omenu document.getelementbyid menu document onm...

JS阻止事件冒泡,阻止預設事件

1 event.stoppropagation 阻止冒泡事件,不讓事件向documen上蔓延,但是預設事件任然會執行,當你掉用這個方法的時候,如果點選乙個鏈結,這個鏈結仍然會被開啟 2 event.preventdefault 阻止預設事件,呼叫此方法是,鏈結不會被開啟,但是會發生冒泡,冒泡會傳遞到...