2013-07-31 58 views
3

我們的網站是asp.net網頁形式和MVC 3的混合體。該網站是以網頁形式開發的,除了存儲在單獨的MVC應用程序中在網站的根目錄中有一個單獨的目錄並擁有自己的web.config。 Web表單頁面(aspx)由IIS 7服務器正確提供,但MVC url正在返回404 - 文件或目錄未找到。IIS 7上的MVC 3爲MVC無延伸url請求返回404

例如,假設該網站是www.abc.com和MVC應用程序正在使用www.abc.com/aaa/controller/action,其中AAA是爲根目錄訪問MVC應用程序幷包含它自己的web.config。 web表單url(比如說www.abc.com/feedback.aspx)正在工作,但是,MVC URL(例如(www.abc.com/aaa/Controller/Action))將返回404.

我已經確認從我的共享主機提供商,該網站是運行在.NET 4集成管道模式應用程序池,所以擴展名的URL的應默認由IsapiModule處理,而不需要同任何額外的配置。

一個疑問在我看來,作物是否應將MVC應用程序根文件夾(上例中的aaa)轉換爲單獨的應用程序?

任何猜測,解決上述MVC網址問題?

+0

我同意你可能需要製作一個虛擬應用程序「aaa」,因爲它本質上是它自己的web.config。 –

回答

0

共享路由系統。您應該製作一個混合Web應用程序,部分WebForm和MVC。我最近在這裏做了類似的事情,其中​​是主要的應用程序,MVC是嵌套的。在這種情況下,整個站點必須只有一個global.asax和一個web.config。 MVC可以和WebForm一樣位於同一個目錄中,但只能與他們共享內容。

我遵循本指南從Scott Hanselman使這項工作。

+0

網站(網頁表格)由其他人開發,我開發了一個單獨的MVC應用程序。所以,製作混合網頁應用程序不太可能成爲我現階段應該考慮的解決方案。 – Jatin

+0

然後,您必須將每個應用程序放在分隔符虛擬目錄中,並且可能需要第三個應用程序來管理身份驗證和重定向,因爲它們將跨域應用程序。 – Fals

+0

MVC應用程序僅用於內部使用,並有其獨立的身份驗證模塊。我不確定重定向部分,但這裏只有一個問題。 – Jatin

0

託管服務提供商使用WebsitePanel,通過它我可以爲包含MVC應用程序的文件夾創建一個虛擬目錄。 MVC URL現在被路由到Isapi處理程序,並且不再返回404(找不到文件)。所以,我想我會在這裏關閉這個話題。

簡而言之,爲MVC應用程序創建一個虛擬目錄解決了這個問題。