最近需要將網站主機搬移到另一台主機上(兩台都是Window Server 2016,IIS 10),在我將網站資源還有主程式搬過去後,發現操作檔案的頁面都沒辦法執行刪除搬移過去的資源,都只會出現下面這個錯誤,
System.UnauthorizedAccessException: 拒絕存取路徑。
原本以為是程式bug,但經過檢查過後發現原有的檔案資料在原本主機都可以進行操作,但是只要換到新機台這邊後,同樣一筆檔案資料會變成無法去存取一起搬移過來的檔案。
結果
最後發現是IIS應用程式集區的權限消失。
1.應用程式集區可以打開IIS查看,確認目前架設的網站是對應到哪個集區,而紅框部分為此集區的識別權限,可以調整此識別來控制權限大小,如沒有特殊需求的話採取默認的識別就可以了。
2.打開兩邊主機的檔案資料夾內容後,確認集區的虛擬帳戶 DefaultAppPool 消失了,
如下圖新主機的這個權限是沒有的。
3.這邊只能手動增加回來,先點選編輯後,再點選中間的新增按鈕。
4.輸入IIS AppPool\DefaultAppPool後,再按下檢查名稱就可以找到此虛擬帳戶,如果網站是用其他程式集區,只要把斜線後面名稱改為你在用的集區即可。
5.再來只要把完全控制或者修改權限開起來就可以了,之後程式就能正常執行。
沒有留言:
張貼留言