今天在我的windows7旗艦版上配置iis7 (Internet Information Server)失敗,一直未能啟動服務,訪問本地網絡提示”Service Unavailable HTTP Error 503. The service is unavailable“。DefaultAppPool啟動后自動停止。果斷查看系統事件,這個錯誤居然和QQ拼音輸入法有關:
1.Windows 不能讓您登錄,因為不能加載您的配置文件。請檢查您是否連接到網絡,而且網絡是否工作正常。
詳細信息 – 僅完成部分的 ReadProcessMemory 或 WriteProcessMemory 請求。
2.Windows Process Activation Service 未能為應用程序池“DefaultAppPool”創建工作進程。數據字段包含錯誤號。
3.應用程序池“DefaultAppPool”將被自動禁用,原因是為此應用程序池提供服務的進程中出現一系列錯誤。
4.Windows 不能將文件 \\?\C:\Users\Default\AppData\Roaming\Tencent\QQPinyin\mergecell.dict 復制到位置 \\?\C:\Users\DefaultAppPool\AppData\Roaming\Tencent\QQPinyin\mergecell.dict。這可能由網絡故障或安全權限導致。
詳細信息 – 拒絕訪問。
5.Windows 找不到本地配置文件,正在用臨時配置文件讓您登錄。當您注銷時,對此配置文件所作的更改將丟失。
網上有一個解決方法就是將應用程序的的進程模型的標識由ApplicationPoolIdentify修改成NetWorkService,不過這個我沒有試過。關於這個ApplicationPoolIdentity,默認情況下,選擇“應用程序池標識”帳戶。啟動應用程序池時動態創建“應用程序池標識”帳戶,是iis7的新特性,因此,此帳戶對於應用程序來說是最安全的,我有點固執,不管他有沒有用,我還是想從問題本身來解決,繞過問題並沒有什么意思。
說到底,ApplicationPoolIdentity是一個虛擬創建的賬戶,因為啟動失敗,所以我在c:\users並沒有看到他的文件夾名字,也就無從手動創建用戶配置文件。中間試過很多方法,始終出現這個錯誤。最后查看這個C:\Users\Default\AppData\Roaming\Tencent\QQPinyin\mergecell.dict 文件發現原來他只有權限給了administrators,果斷給users權限,再次啟動DefaultAppPool,然后再localhost,大功告成。