分享程式代碼相關筆記
目前文章總數:157 篇
最後更新:2024年 12月 07日
這是一段在Global.cs 上的 QueueBackgroundWorkItem 代碼
當站點運行時就會自動執行這段程式,紀錄現在時間
private void QueueBackGroundWorkItemExample()
{
HostingEnvironment.QueueBackgroundWorkItem(item =>
{
while (true)
{
using (StreamWriter sw = new StreamWriter(@"D:\\info.txt", true))
{
sw.WriteLine($@"紀錄時間:{DateTime.Now}");
}
//10秒
Thread.Sleep(10 * 1000);
}
});
}
問題在每次部署到IIS上後,並不會執行上面的程式
依照代碼意思應產生info.txt,但沒有
解決方法有三個步驟要進行
1. 【伺服器管理員】要安裝應用程式初始化
2. 【IIS網站】進階管理要設定預先載入
3. 【應用程式集區】設定不回收、永遠啟用
進入到服務器管理器 -> 管理
選擇新增角色與功能
進入精靈
安裝應用程式初始化 - 完成
進入IIS網站 -> 進階設定
預先載入已啟用 -> True - 完成
一樣在IIS,選擇應用程式集區 -> 進階設定
進階設定 -> 啟動模式 -> AlwaysRuning
AlwaysRuning : 就不會判斷沒有使用時關閉
回收-固定時間間隔(分鐘) -> 設為0 - 完成