[ASP.NET]HTTP 錯誤 500.19 - Internal Server Error
前言
今天在測試頁面的時候,突然發現一些在MasterPage上的相對路徑是使用../../的方式,
結果目錄結構深度不一樣時,會導致頁面找不到相關資源。
要改用站台名字從根目錄找下來的時候,發現我的IIS站台,是直接設定在主機名稱底下。
原本還以為只要虛擬目錄對的到就好,結果才知道要新增『應用程式』,才會有站台名字…
(從XP直接跳Windows 7,IIS真的變超多的…)
Anyway…設定完後,瀏覽,恩,很好!頁面出來了,站台名稱也OK了。
接著去VS2008裡面,把原本使用檔案系統的站台,改成用IIS的站台。
瞎咪!還要額外裝IIS元件?!
要裝IIS6相容跟Windows驗證…
那就裝吧,
裝完之後,VS果然可以開IIS的站台了,但是悲劇發生了…
HTTP 錯誤 500.19 - Internal Server Error
跑頁面都出現『HTTP 錯誤 500.19 - Internal Server Error』這個錯誤,錯誤畫面如下:
看上面的錯誤訊息,似乎是錯在web.config檔的設定,與啥WebService的設定問題。
再看看web.cofing上,<system.webServer>區段上,寫著
<!--
需要 system.webServer 區段才能在 Internet Information Services 7.0 下
執行 ASP.NET AJAX。舊版的 IIS 則不需要。
-->
加上我對IIS7的設定實在很不熟,
所以我猜測問題的發生原因可能是以下幾點:
- 原本VS沒加入IIS網站,一切都是正常的,要加IIS網站,要裝啥IIS6相容設定元件,所以可能是IIS7設定的問題。
- IIS6設定相容性,又出錯在web.config?難道是<system.webServer>那一段要改?
- 啥allowOverride跟啥”Deny”的設定?這完全沒見過,不過可能也是錯誤的原因
- 權限設定的問題,不過我有確定該權限有開給ASP.NET偵錯了…
錯誤資訊的頁面上還有個連結,講著這樣的問題可能的原因與解決方案。
請參考:http://support.microsoft.com/kb/942055/
看起來也都是config上的毛病...
Solution
在IIS的設定、權限的設定與web.config的設定繞了好久之後,
突然想到…靠!我有額外新裝了IIS的部分元件,好像又有看到啥警告訊息,要求什麼『註冊』的…
該不會問題跟之前先裝VS,才裝IIS,要重新註冊ASP.NET一樣吧…
果不其所以然,錯誤資訊上的區塊,都跟我的問題無關。
打開『命令提示視窗』,到『C:\Windows\Microsoft.NET\Framework64\v2.0.50727』底下,輸入『aspnet_regiis -i』重新註冊ASP.NET就可以了…
結論
繞了一大圈,卻一時忘了之前的經驗…
藉著這一篇文章,希望自己牢牢記住這次的經驗,也希望可以幫助其他人更快地找到這問題的解決方式。
blog 與課程更新內容,請前往新站位置:http://tdd.best/