讓人崩潰的一上午
今天在安裝網站的時候遇到了一個 BUG,足足折騰了我三個小時。其現象是網站通過安裝程序部署后,所有的 aspx 頁面均為 404。
(1)由于部署環境是 IIS 6.0,因此第一感覺就像到了是否是禁用了 ASP.NET v2.0 擴展(這也是網上人們對于這個問題的一般回答),但發現該擴展確實是啟用的;
(2)出于狐疑,還是使用 aspnet_regiis –i –enable 重新進行了注冊,但是問題依舊;
(3)查看 IIS 日志,發現 404 是 404.0.0 認定這絕對是路徑的問題而不是 ASP.NET v2.0 擴展或者 Http Handler 映射的問題;
(4)經過了大眼瞪小眼的查找之后,發現:Web Application 的路徑赫然寫著:E:\\WebRoot\WebApp,原來E:后面竟然跟了兩個斜線。
原來,安裝程序在腳本生成的時候使用了變量替換,例如安裝的目標路徑是 $InstallPath$\WebApp,但是用戶選擇路徑的時候恰恰選擇了盤符,這樣安裝路徑就成了 E:\ 于是就有了 E:\\ 的出現。更改安裝程序,將用戶選擇路徑的多余的“\”消除之后,解決。
往往最花時間的 BUG,其起因是很“白癡”的。
浙公網安備 33010602011771號