你是否經常會遇到以下的攔路虎,當你興致勃勃地把調試好的程序發布到WEB服務器時,以下錯誤就出現了:
1、無法找到文件(404)白底黑字
2、沒有權限訪問該文件(403)白底黑字
3、直接彈出來一個要輸入帳號密碼的框框,然後你對著屏幕說:什麼密碼。
4、黃底黑字+紅字的錯誤提示頁(.Net)
5...
這些東東幾乎占據了.Net+IIS搭建環境的絕大部分錯誤。
有時我們無意中覆蓋一個“不起眼”的文件,上述錯誤就會蹦出來。碰巧該應用又是非常重要的應用,這足夠讓你接下來的一個小時冒冷汗。
不過光冒冷汗沒用,引用一句話:錯誤不被你解決,你就有可能被錯誤解決。我們還是淡定下來解除這些錯誤吧。我們一項項的來:
1、無法找到文件(404)白底黑字
有以下這些可能性:
第一,你所訪問的路徑確實沒有這個文件,或許你記錯了位置,但它的確不存這個文件。解決辦法:找到這個文件,去IIS所指向的目錄中一層層找這個文件,並確認它存在。
第二,你的IIS沒有認出來這個文件,沒有該文件的解釋器(IIS網站屬性——主目錄——配置——應用程序擴展)。IIS沒有該程序的解釋器,然後撒一個謊說沒有這個文件。解決方法:打開(IIS網站屬性——主目錄——配置——應用程序擴展),添加應用程序的相關解釋器。
第三,你有某個UrlRewrite在起作用,將你輸入的URL給重定向到一個不存在的文件或目錄。
。。。
2、沒有權限訪問該文件(403)白底黑字
有以下這些可能性:
你的NTFS文件夾沒有給予WEB用戶讀取的權限。解決方法:打開計算機管理——本地用戶和組——用戶——添加用戶,在這裡添加一個用戶,請記住該用戶不要屬於任何組,如下圖所示:
添加新的用戶時,密碼先用記事本打出來,添加完成後,記事本不要關閉,這個密碼在IIS裡配置時還需要用到一次.
用戶不需要屬於任何組,不繼承任何權限.
之後,我們開始給WEB文件夾賦予權限了.順便提一下,給WEB文件夾配置權限這個步驟很重要,見過很多站點被黑都是因為文件夾權限設置不當,要麼過大,要麼根本沒有一站一用戶,有些站點直接給EveryOne用戶最大權限,甚至有些站長認為NTFS磁盤格式"根本沒用",直接把網站所在的磁盤做成 FAT32的,還有很多的虛擬主機商為了圖省事,雖然做到了一站一戶(軟件生成),但是配置的權限過高,因為配置低權限有時候會出現運行故障....後果可想而知.我們遇到問題不要慌,特別是安全的問題.
配置文件夾權限的操作方式是:在WEB文件夾上點右鍵,選擇屬性——安全;
為了安全,我們要保證網站文件夾的初始權限狀態是這樣的:
為防止逐步提權。網站所在磁盤及該磁盤中所有下屬文件夾,除了你用於遠程登錄的最高管理員,其它的統統去掉。
我們要向該文件夾添加2個用戶權限:一個是剛剛添加的用戶,用於WEB訪問該文件夾,一個是系統內置用戶Network Service,用於.net組件在本機運行時訪問。
給文件夾添加用戶的方法之一是單擊“添加”——“高級”——“立即查找”,從結果列表中選擇目標用戶。
添加這些用戶進入列表之後,還不算完,點擊“高級”,然後選擇某個用戶,點擊“編輯”,給這個用戶分配權限,要說的東西限於篇幅,在這裡我只給2點參考意見:
(1)WEB文件夾的權限再大也不能大過這個底線:如下圖所示:
請記住,“完全控制”,“遍歷文件夾/運行文件”,“更改權限”,“取得所有權”這四個權限絕不能賦給WEB用戶。
(2)請根據需要給子文件夾配置各種不同的權限。例如:給用於上傳文件的文件夾寫入、刪除等一系列權限,但為防止用戶通過程序本身的上傳機制上傳木馬,則應該在IIS中配置該文件夾執行權限為“無”:
程序中合法上傳文件的文件夾請設置執行權限為“無”
3、直接彈出來一個要輸入帳號密碼的框框
這個問題其實很簡單,第二點中就有介紹,因為我們把WEB文件夾的權限給了自定義的用戶,從而導致IIS的默認用戶失去了該權限,我們打開IIS,在目標網站上點擊右鍵——屬性——目錄安全性——身份驗證和訪問控制欄點“編輯”,出來如下對話框:
IIS有默認的用戶名設置,所以我們要重新配置。
點擊“浏覽”,選擇我們在第二步中新建的WEB用戶,然後粘帖記事本中存放的密碼,點擊確定之後還要再粘帖一次,確定就可以了。
現在刷新頁面看看,應該可以正常浏覽了。
4、黃底黑字+紅字的錯誤提示頁
.net的所有錯誤如果沒有被重定向到自定義頁,所有的程序級錯誤都是諸如黃底+黑字或紅字的錯誤信息,因為太常見,我就不截圖浪費資源了,在這裡,我只講一下關於環境的,“Web應用程序當前不可用”,請打開IIS,有兩個地方要修改:
1、右鍵網站屬性,選擇Asp.Net選項卡,在版本裡選擇正確的版本。
2、IIS主窗體左側的“WEB服務擴展”中,選擇相應的ASP.net擴展,並點擊“允許”。
因為時間關系,且這篇文章老被意外打斷,並且搜集證據,居然花了四天時間,效率可見相當之低!
以上四點,只是本人干活多年遇到的.Net+IIS環境主要環境問題匯總。希望大家多補充,不當之處懇請批評指正。
出處http://www.cnblogs.com/CoreCaiNiao/archive/2011/08/01/2123991.html