IIS 7.5 部署ASP.NET失敗的解決方案_win伺服器

來源:互聯網
上載者:User

    近日在win7的IIS7.5上部署ASP.NET4.0 程式時,發現瀏覽網頁都出現錯誤碼為"503“的錯誤,但是我已經將對應用程式部署到IIS上了,怎麼會出現找不到頁面的情況呢?開始以為是ASP.Net 環境沒有安裝到IIS7.5中,執行了幾遍ASPNET_REGIIS -i都還是一樣,結果查看ASP.NET應用程式使用的【應用程式集區】-DefaultAppPool停止了,於是我馬上啟動,但是馬上它有恢複成【停止】狀態:

      於是,查看【windows事件檢視器】發現如下錯誤:

    發現錯誤是“沒有足夠的許可權”,

   

   於是看了一下【應用程式集區】的【進階設定】中的【進程模型】的【標識】設定的是“ApplicationPoolIdentity”,對於此設定的說明,參考了:http://www.jb51.net/article/65315.htm如下:

ApplicationPoolIdentity – 預設情況下,選擇“應用程式集區標識”帳戶。啟動應用程式集區時動態建立“應用程式集區標識”帳戶,因此,此帳戶對於您的應用程式來說是最安全的。

也就是說"ApplicationPoolIdentity"帳號是系統動態建立的“虛擬”帳號(說它是虛擬,是因為在使用者管理裡看不到該使用者或使用者組,在命令列下輸入net user也無法顯示,但該帳號又是確實存在的) 

如何驗證該帳號確實是存在的的?開啟工作管理員,觀察一下:

w3wp.exe即iis進程,上圖中高亮部分表明該iis進程正在以帳號luckty運行(注意這裡的luckty即為上圖中的應用程式集區名稱)


好了,搞清楚這個有什麼用?

先來做一個測試,比如我們在iis裡建立一個網站,主目錄設定為c:\2\,應用程式集區就指定剛才圖中的luckty

假如我們在該網站的default.aspx.cs裡寫入這樣一行代碼 :

File.AppendAllText("C:\\TestDir\\1.txt",DateTime.Now.ToString());

前提是c盤必須先建一個目錄TestDir,同時除Administrator,System保留完全控制權外,其它帳號的許可權都刪除掉

運行後,會提示異常: 對路徑“C:\TestDir\1.txt”的訪問被拒絕。

原因很明顯:該網站運行時是以應用程式集區(luckty)對應的虛擬帳號啟動並執行,而這個虛擬帳號不具備c:\TestDir的存取權限

這種情況在web伺服器(iis6)安全配置中很常見,比如我們把圖片上傳目錄,常常放在主目錄之外,同時以虛擬目錄形式掛於網站之下,另外在IIS6中不指定該目錄任何執行許可權 ,這樣即使有人非法上傳了asp/aspx木馬上去,也無法運行搞不成破壞!

言歸正傳,要想讓那一行測試代碼正常運行,解決辦法很簡單,把虛擬帳號的許可權加入檔案夾安全許可權中即可,但是問題來了:這個虛擬帳號我們是不可見的,如果你直接添加名為luckty的使用者到檔案夾安全帳號裡,根本通不過(提示找不到luckty使用者),說明這個虛擬帳號名稱並不是"luckty"


關鍵:手動輸入 IIS AppPool\luckty (即IIS AppPool\應用程式集區名),再確定,這回ok了.


 

當然除了用"IIS AppPool\應用程式集區名"外,windows內部還有一個特殊的使用者組Authenticated Users,把這個組加入TestDir的安全許可權帳號裡也可以,不過個人覺得沒有"IIS AppPool\應用程式集區名"來得精確.


結束語:
IIS7.5的虛擬帳號設計確實很棒,想想傳統IIS6的時候,為了把同一伺服器上的各網站許可權分開(以防止木馬搗亂),不得不建立一堆iuser_XXX,iwam_XXX帳號並指定密碼,再一個個站台指派過去,累死人!而虛擬帳號設計則讓這類管理輕鬆多了,也不用擔心密碼過於簡單或到期問題。So,還在等什麼,趕緊升級到win7/win2008 R2吧!

另外:如果沿用之前的做法,可將【標識】設定成"LocalSystem"亦可解決

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.