我想掛鉤應用程序的啓動和停止事件,以跟蹤我的IIS託管工作流服務是否正在運行。理想情況下,當我通過啓動AppPool或IIS應用程序啓動我的工作流服務(如果多個服務共享相同的AppPool),我想將事件記錄到數據庫中。當通過停止AppPool或IIS應用程序停止我的工作流服務時,我想將事件記錄到數據庫中。IIS託管的工作流服務如何檢測應用程序的啓動和停止
有沒有辦法做到這一點?
我想掛鉤應用程序的啓動和停止事件,以跟蹤我的IIS託管工作流服務是否正在運行。理想情況下,當我通過啓動AppPool或IIS應用程序啓動我的工作流服務(如果多個服務共享相同的AppPool),我想將事件記錄到數據庫中。當通過停止AppPool或IIS應用程序停止我的工作流服務時,我想將事件記錄到數據庫中。IIS託管的工作流服務如何檢測應用程序的啓動和停止
有沒有辦法做到這一點?
你應該看看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),但我認爲這將大大邁向幫助您實現關於工作流和服務監控的目標。
要攔截應用程序啓動/通過管理控制檯停止我認爲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();
}
這將寫入任何你想要的文本文件,然後你可以讀取一個簡單的服務並獲取相關數據。
,不只是應用程序被開始簡單,正確的嗎? –
在iis上託管的應用程序在global.asax中有啓動和停止事件,iis甚至會告訴您(在事件參數中)爲什麼它會關閉您的應用程序 – Zee