最近
在很多論壇上看到
很多人遇到HTTP
Internal server error 的錯誤
所以這也就是促使我寫這片文章的動力
這個錯誤表明服務器設置有問題
而最常出錯的是服務器使用的IIS
來運行一個ASP格式的網站
當訪問者訪問服務器是
會出現如下錯誤
The page cannot be displayed
There is a problem with the page you are trying to reach and it cannot be displayed
HTTP
Internal server error
Internet Explorer
好
現在讓我們打開IIS的設置來看一看
解決這個問題的最簡單
方法是將Application Protection 設置為 Low(IIS Process)
好
現在訪問一下服務器
已經正常了! ok
雖然
從表面上看
問題似乎已經得到了解決
但是我幾乎可以肯定
你的服務器存在其他問題
那麼
為了切入問題的關鍵
我想先講講這三個 Application protection級別的含義
Low(IIS Process)
我想用過IIS
的人
都知道
在IIS
裡有個Default
這個實際上和它代表的意義是一樣的
所有的Web頁面
包括HTML
HTM
XML以及ASP都運行在一個叫做Inetinfo
exe的進程裡
Medium (Pooled)
這是IIS
的默認設置
相當於IIS
裡的separate process
這是當這個網站被訪問時
服務器會啟動一個叫dllhost
exe(在IIS
裡這個進程叫Mtx
exe)的進程
這個進程是所有ASP和COM組件運行的空間
而且啟動這個進程的帳戶是一個叫IWAM_MACHINE的用戶(這個用戶在你安裝好IIS被自動加到本地組的)
注意到名稱中有個
pool
的字樣
這是因為所有的Web站點都會用到這個空間來進行ASP代碼的執行
High (Isolated)
選擇這個設置
IIS
會讓每一個Web站點獨享一個獨立的Dllhost
exe空間
如果你有
個Web站點
那麼當有人訪問你全部的站點時
你會在進程裡看到
個dllhost
exe進程
其中有一個是Com+組件啟動時
有SYSTEM這個帳戶啟用的
總結: 顯然
這
個Application protection是在穩定性和服務器消耗之間平衡關系的一種調節
注意到Medium (Pooled)
運行在dllhost
exe進程裡
我們可以知道
它需要COM+組件為其運行提供後台支持!
好了
現在我們已經了解了這
個Application protection級別的含義
記得剛才我說
你的服務器還存在問題吧
是的
的確
你的IIS現在不可以設置成Medium (Pooled)和High (Isolated)
證明你的COM組件存在問題
你要重新安裝
組件服務
方法如下
From the Start menu
point to Settings
click Control Panel
and then click Add/Remove Programs
Click Add/Remove Windows Components
Proceed through the wizard
and accept all of the defaults
Restart the computer
注意
可能會有人在這裡找
Component Service
這個服務
但是你是找不到的
正確的方法是
在出現了下邊的畫面後
直接點擊
next
不要猶豫
因為這個操作會引導系統重新安裝
組件服務
完成後
啟動計算機
在下次啟動後
把IIS裡的Application Protection設置為Medium (Pooled)或High (Isolated)
打開IE訪問服務器
好了現在一切正常了!
當然出現HTTP
Internal server error 錯誤
還有很多原因
只不過這個是比較普遍的
而且一般用戶可能一時找不到原因
所以我就寫了這片文章
希望能對大家有所幫助
至於其他原因而導致出現HTTP
Internal server error 錯誤
我會在以後介紹給大家!
對了
最後提醒大家
千萬注意
IIS設置中的script source Access 一定不要打開
這會帶來嚴重的安全問題
因為訪問者可以看到你的ASP文件中的內容
From:http://tw.wingwit.com/Article/Fault/201311/10578.html