ASP.NET 4 MVC 佈署到 IIS 7.5 問題總整理 (2)
錯誤 1
HTTP 錯誤 404.3 - Not Found
因為網頁伺服器上設定的多用途網際網路郵件延伸標準 (MIME) 對應原則,而無法提供您要求的網頁。如果此網頁為指令碼,請新增處理常式,而且如果它是應該要下載的檔案,請新增 MIME 對應。
解法
這有可能是因為 使用 MVC 2 且 沒有用到 HttpContext ,但佈署到 IIS 7.5 沒有用「整合式」所導致的錯誤。
只要改回成 「整合式」就可以了!
http://boardreader.com/thread/MVC_doesnt_work_once_is_published_in_the_a39oXwrgo.html
20121225 update
另外請再檢查是否有 ASP.NET v4.0 的Application Pool ,若沒有的話就代表 IIS 並沒有註冊 Framework 4「CD c:\windows\microsoft.NET\Framework\v4.0.30128」
「ASPNET_Regiis.exe -iru」
其他注意事項
當用 開發工具 直接去拉 「圖片」或「 js」到網頁時,都會用 「相對路徑」 ex.. /image/xx.jpg 。往往佈署到 IIS 7.5 上,因為 Url Route 的關係,導致 相對路徑可能無法正常運作。 所以建議還是都用 「絕對路徑」 ( 這是指 在 view 的頁面上 )
另外 ~/image/xx.jpg 可能也是蠻多人會直接這麼用,但小弟在實際佈署時也是會遇到指定路徑錯誤的問題。即使搭配 url.resolve 也沒用 Orz 。
若 有網頁不透過 MVC 的 Url Route 的話! 就還是透過 「相對路徑」 ( 但 請注意 下一層的話請用 ./ 、上一層請用 ../ )請改用 Url.Content 的方式!
供參考 小弟之前佈署時遇到的問題,以及 小弟的解法