IIS文件存在但報404問題解決


遇到一個奇怪的問題,在IIS7.5中,一些樣式和JS文件存在,但訪問就是報404.

根據網上搜索到的解決方法,發現解決不了,不同同樣的問題引起的。

網上解決:

1、沒有配置合適的MIME信息,通過添加合適的MIME信息來解決。

打開IIS配置,看了下,已經添加了樣式文件的了,所以不是這個問題。

 

2、重新注冊.net framework,原因是先安裝的.net后安裝IIS,沒啟用.aspx頁面訪問

HTTP 錯誤 404.2 - Not Found  由於 Web 服務器上的“ISAPI 和 CGI 限制”列表設置,無法提供您請求的頁面。

打開IIS,右邊操作里選基本設置,應用程序池旁邊點選擇,模式改成Classic ,

就是將管理模式切換為了經典模式。

出現環境:win7 + IIS7.0

解決辦法:IIS的根節點->右側“ISAPI和CGI限制”->把禁止的DotNet版本項設置為允許,即可~ 如果沒有的可以自行添加,路徑如下圖示:

這個也不對,因為不是剛剛安裝的,已經運行了很久的了,而且其它站點也正常。

 

后來又在網了搜索了很久,沒找到思路。

懷疑是路徑跳轉不正確,所以配置webconfig列出了文件列表,想確認文件存在。

遂層點擊查詢,發現是文件名帶有“.”的目錄訪問不正常,報4040.

 

轉到服務器本地訪問,查看原因(因為在外面訪問是不呈現詳細錯誤信息的)。

看到,樣式文件和JS文件所有的目錄訪問是被UrlScan拒絕了。

查看UrlScan日志

應該上是這個UrlScan配置有問題了,於上找一下配置的文章,修改配置,解決了。

參考:http://www.cnblogs.com/ttzhang/archive/2010/04/27/RunPhpOnIIS7viaFastCGI.html

解決方案:

是UrlScan拒絕了該請求,在UrlScan的日志目錄C:\Windows\System32\inetsrv\urlscan\logs\中打開一個日志文件,發現很多類似 "Rejected URL+contains+high+bit+character URL"的記錄,這又是為什么呢???原來IIS7.0上安裝UrlScan后,所有的請求都會經過aspnet_filter和Request Filtering的過濾,Request Filtering的過濾規則就在UrlScan的安裝目錄C:\Windows\System32\inetsrv\urlscan\UrlScan.ini文件中,其中有這樣一個規則AllowHighBitCharacters=0,IIS官網的解釋是: This feature either allows or rejects all requests to IIS 7 that contain non-ASCII characters and logs the error code 404.12,允許或拒絕所有包含非ASCII字符的請求並在日志中記錄404.12錯誤,該規則默認為0,也就拒絕包含高位字符的請求 URL。我們將AllowHighBitCharacters的值改為1,圖片終於可以正常顯示了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM