文章目錄
這個問題遇到第二次了,照以往的習慣:問題遇到二次以上就要來筆記一下,避免下次再遇到又要花好多時間追查。之前沒有紀錄的原因:一來是覺得狀況特殊不太有機會再遇到,二來就是牽涉到的功能及設定不好模擬,但這次遇到相同問題又讓我花了好幾個小時才確認問題,所以多花點時間準備環境來完成紀錄
這次遇到的問題,外顯的錯誤訊息很籠統,第一時間並不好定位出問題,但搭配 event log 難度就會降低許多,就來看看實際的狀況為何吧
錯誤訊息
訊息內容
Service Unavailable HTTP Error 503. The service is unavailable.
錯誤截圖
解決方式
請務必確認遇到的狀況與下方
如何確認解決方式適用
情境相符
取得 IIS Application Pool 所使用的 Identity
開啟 Local Policies –> User Rights Assignment –> Log on as a batch job
Add User or Group…
重新開機(不一定需要)
較新的 Windows 10 及 Windows Server 2016 都可以直接生效,如果較舊的作業系統建議重新開機
如何確認解決方式適用
IIS 出現 503 Service Unavailable
Application Pool 啟動後立即被停止
Event log 中出現 WAS 類型的 Error 及 Warning
以下三個 WAS 類型的 Error 及 Warning 會接續出現
Error
- Event ID 5059Application pool TestTimeout has been disabled. Windows Process Activation Service (WAS) encountered a failure when it started a worker process to serve the application pool.
Warning
- Event ID 5057Application pool TestTimeout has been disabled. Windows Process Activation Service (WAS) did not create a worker process to serve the application pool because the application pool identity is invalid.
Warning
- Event ID 5051The identity of application pool TestTimeout is invalid. The user name or password that is specified for the identity may be incorrect, or the user may not have batch logon rights. If the identity is not corrected, the application pool will be disabled when the application pool receives its first request. If batch logon rights are causing the problem, the identity in the IIS configuration store must be changed after rights have been granted before Windows Process Activation Service (WAS) can retry the logon. If the identity remains invalid after the first request for the application pool is processed, the application pool will be disabled. The data field contains the error number.
需要 Logon as Batch Job 權限的情境
寫入資料至分享資料夾
我遇到的狀況屬於這個
程式使用到分享資料夾(透過網路位置加入)
IIS 使用特定 user 來存取網路硬碟
使用分享印表機
執行互動式程式
心得
這次遇到的問題以結果來看不算是困難的狀況,但為了確認解決方案花了較多的心力,主要原因在於實際遇到的 Server 我沒有管理權限,AD 設定也看不到,所以要調整 Group Policies 就變得困難,排除這個因素在定位錯誤原因也花了不少時間:雖然 event log 中有提到缺少 batch logon 的權限,但遲遲沒有意識到是個 Local Policies 的設定,所幸透過重新模擬環境得以完成紀錄,不用擔心下次再遇到問題又要花很多時間才能解決了 哈哈
參考資訊
文章作者 Yowko Tsai
上次更新 2021-11-02
授權合約
本部落格 (Yowko's Notes) 所有的文章內容(包含圖片),任何轉載行為,必須通知並獲本部落格作者 (Yowko Tsai) 的同意始得轉載,且轉載皆須註明出處與作者。
Yowko's Notes 由 Yowko Tsai 製作,以創用CC 姓名標示-非商業性-相同方式分享 3.0 台灣 授權條款 釋出。