2010-02-23 17 views
2

我有閱讀文章整晚尋找我的問題的答案,並沒有發現任何適合我的東西。我確信有一個簡單的方法來做到這一點,但我還沒有能夠發現它。Deloying MVC應用程序到Web服務器不能正常運行

詳情: MVC 2預覽 Asp.net 3.5 SP1框架 VS 2008 C#的Web應用程序 Windows Server 2008的 IIS 7

我的應用已經通過VS 2008沒有問題運行良好。當我點擊播放以調試模式運行時,它啓動ASP.NET開發服務器,應用程序加載正常並按預期工作,非常棒!

當我在IIS 7上本地或我的Web服務器上發佈應用程序時,應用程序無法正常運行。一些圖標丟失,谷歌地圖地圖丟失。當我查看源代碼時,第一眼看起來是正確的,但是我可以看到圖像的路徑正在查找MVC路徑,並且找不到它們。它似乎應用程序正在運行作爲一個常規的asp.net應用程序,而不是一個mvc應用程序,也許?

我也嘗試在localhost本地點擊完整的源代碼,並且存在完全相同的問題。

所以,我想我的問題是我如何部署一個MVC應用程序在IIS中運行相同的通過開發服務器。

對此非常感謝!

Simon。

PS環境很乾淨,開箱即用。

+0

+1此時與GoDaddy有同樣的問題。什麼都不運行哎。 – griegs 2010-02-23 03:35:35

+2

您是否使用圖像的相對路徑? – 2010-02-23 03:39:01

回答

0

@ user68137在說你需要使用圖像的相對路徑是正確的。

我得到了這一個抓出來過了,這裏的my previous SO question它...

總之,你需要做這樣的事情...

<img src='<%= Url.Content("~/Content/Images/banner.jpg") %>' alt="Banner" /> 

希望這有助於!

0

我設置了相對路徑,但我沒有意識到的是,當我將它部署到服務器時,它到了wwwroot \ subsite ...我將相對路徑設置爲src =「.... \ image.jpg「回到網站的根目錄。我的錯誤是,如果該網站不在根目錄中,那麼該子網站將鑽回根目錄以查找圖像,當然找不到它們。 JS文件也一樣。我使用了Url.Content,它效果很好!問題解決了!

有趣的是,當通過VS dev服務器運行一個子網站時,它仍然運行良好,找到了路徑,即使它不應該有。 VS dev server <> IIS

感謝您對此的幫助!

Simon。

0

一旦知道了要部署項目的位置的虛擬路徑,您應該進入Visual Studio中的項目配置並將其添加到項目中。這樣Visual Studio開發服務器將使用與部署服務器相同的路徑結構。這將爲您節省無數工作時間。

0

當您通過Visual Studio運行您的網站時,每個請求都會通過ASP.NET管道進行處理,包括圖像,CSS和其他資源。默認情況下,IIS只處理特定的擴展名(例如,aspx),除非通過配置另行說明。像'/content/images/yourimage.jpg'這樣的路徑應該工作得很好......我懷疑在你的IIS配置中有什麼不妥。

我遇到的另一種可能性是您可能已安裝在IIS服務器上的任何自定義ISAPI篩選器(例如ISAPI_rewrite)。在配置中設置規則很容易,導致一些非常意想不到的結果。

相關問題