2011-09-16 45 views
1

我想掛鉤應用程序的啓動和停止事件,以跟蹤我的IIS託管工作流服務是否正在運行。理想情況下,當我通過啓動AppPool或IIS應用程序啓動我的工作流服務(如果多個服務共享相同的AppPool),我想將事件記錄到數據庫中。當通過停止AppPool或IIS應用程序停止我的工作流服務時,我想將事件記錄到數據庫中。IIS託管的工作流服務如何檢測應用程序的啓動和停止

有沒有辦法做到這一點?

+0

,不只是應用程序被開始簡單,正確的嗎? –

+0

在iis上託管的應用程序在global.asax中有啓動和停止事件,iis甚至會告訴您(在事件參數中)爲什麼它會關閉您的應用程序 – Zee

回答

1

你應該看看Windows Server AppFabric上的這篇文章。具體來說,請查看「跟蹤WF事件」部分。

http://msdn.microsoft.com/en-us/library/ee677205(v=azure.10).aspx

的AppFabric是一個單獨的安裝(http://msdn.microsoft.com/en-us/library/ff637745(v=azure.10).aspx),但我認爲這將大大邁向幫助您實現關於工作流和服務監控的目標。

Install AppFabric

要攔截應用程序啓動/通過管理控制檯停止
0

我認爲Application_Start & Application_End在應用程序生命週期中執行得太早(或太遲),我假設DataBase Access對象之類的東西不可用於您使用。

我的建議是使用FileSystem交換數據。

void Application_Start(object sender, EventArgs e) 
    { 
     // Code that runs on application startup 
     FileStream fs = new FileStream(@"D:\something\hello.txt", FileMode.Append); 
     StreamWriter sw = new StreamWriter(fs); 
     sw.WriteLine(DateTime.Now.ToString()); 
     sw.Flush(); 
     fs.Close(); 

    } 

這將寫入任何你想要的文本文件,然後你可以讀取一個簡單的服務並獲取相關數據。

相關問題