IIS 8 下 asp.net app 根資料夾的預設權限

重灌Widows Server 2012後,瀏覽本機上的asp.net網站(位於D:)會得到500.19錯誤,如下:
0x80070005 Cannot read configuration file due to insufficient permissions

預設權限如下,只有SYSTEM 及 本機管理員群組(擋起來的是我重灌前設定的網域使用者):
只有SYSTEM 及 本機管理員群組

參考預設資料夾,主要的差異點在多了USERS、IIS_IUSRS群組:
預設資料夾的權限

無法讀取web.config,是因為IIS 7.5之後,w3wp.exe(IIS的Process)預設都是使用IIS AppPools\<App Pool Name>這個虛擬使用者帳號來執行,所以為了一勞永逸,你可以直接加入IIS_IUSRS群組。因為,假設你新增網站ABC時,IIS會自動建立IIS AppPools\ABC使用者帳號並將之加入IIS_IUSRS群組中。

若此時點開一個網頁,會看到網頁是載入了,但CSS、圖片都沒載入,而如果你直接輸入圖片的網址,會被自動導向到asp.net網站的預設登入頁。此時就需要將USERS群組也加入,就一切正常了。

這樣看來靜態物件與動態物件的handler似乎是使用不同的帳號在運作的,但實際上運用的細節,我還在找資料當中。(汗)

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s