2011-04-19 58 views
0

使用這篇文章解決: Can you convert an ASP.NET MVC Application to a Web Site using ASP.NET MVC and what problems might you run into?IIS 7,MVC 3和網站/ WebApplication的問題 - 更新時間:2011-04-21

編輯:2011-APR-21(擺脫了以前的代碼來使其更易於閱讀,一些答覆和意見是從舊後)

,所以我試圖讓我的新的MVC 3頁與IIS工作7

這裏的步驟,我已經採取到目前爲止:

IIS:

1)在IIS中創建7一個新網站,並將其設置爲使用.NET 4.0(集成模式)

網址:

1)我剛剛安裝了2010年新的VS和MVC 3(3天前),3天前從asp.net/mvc下載的MVC 3。

2)我創建了一個新的MVC 3項目,File-> New Project-> Asp.Net MVC 3 Web Application。

現在我發佈項目文件路徑(如c:\項目\ newtestmvcapp

3)我上傳它的工作文件夾(newtestmvcapp)和POFF的全部內容。

我現在刪除域中的文件。

4)我上傳了項目路徑中的普通文件。我上傳除Bin,Obj和屬性以外的所有文件夾。

5)我運行的頁面,現在我得到以下錯誤:無法加載類型'MvcApplication1.MvcApplication'。 <%@ CodeBehind =「Global.asax.cs」Inherits =「MvcApplication1.MvcApplication」Language =「C#」%>

6)我將CodeBehind更改爲CodeFile,並且出現以下錯誤:缺少部分修飾符類型'MvcApplication1.MvcApplication'的聲明;存在這種類型的另一部分聲明。公共類MvcApplication:System.Web.HttpApplication

7)更改此:公共類MvcApplication:System.Web.HttpApplication,成這樣:public部分類MvcApplication:System.Web.HttpApplication

8)現在,我只是得到一個錯誤,資源(例如索引無法找到或關於或任何其他頁面)如果我上傳一個test.htm它的工作原理,如果我上傳表單頁test.aspx它的作品。只是不是MVC。

編輯:我發現了一些關於網站和WebApplication之間區別的文章。這可能是原因嗎?如果是這樣,我怎麼能改變這個MVC 3項目是一個網站(從而允許項目在運行時編譯)。 VS2010中沒有File-> New Web Site-> MVC 3網站。

我們希望能夠將新視圖或控制器上傳到服務器,然後服務器應該爲我們編譯它。 (測試/開發服務器)。

+0

什麼是您的應用程序池中的.Net版本? – 2011-04-19 10:28:51

+0

在IIS中它說框架:4.0,託管管道:集成,身份:網絡服務 – Patrick 2011-04-19 11:26:03

回答

0

此:

In VS2010, i get the following red underlined "UrlRoutingModule" in add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"

似乎指出你正在使用的DLL System.Web.Routing.NET 3.5

由於您正在構建一個MVC 3應用程序,我是否正確地假設您使用的是.NET 4?如果是這樣,這似乎表明您引用了System.Web.Routing的錯誤版本。

是否有任何機會將您轉換爲MVC 3的MVC 2應用程序?


注意

這個答案是大量編輯,無關與我原來的答覆。我指出了這一點,因爲@帕特里克對我的回答的評論可能會令人困惑。

+0

我添加了網絡服務的這些屬性,但我仍然得到了404. – Patrick 2011-04-19 14:46:45

+0

@帕特里克 - 我對我的答案有第二個想法,並已更新它巨資。 – 2011-04-19 15:03:25

+0

不,我在VS 2010中創建了一個新的MVC 3項目並上傳了該項目。我還沒有創建任何控制器/視圖或任何事情。該路由例程我發現在以下網址: http://community.aspnix.com/windows-manuals-tutorials-how-tos/2676-how-fix-http-error-404-when-running-mvc-iis7 .html 我還應該指出,我剛剛安裝了.NET 4框架,VS 2010和MVC 3.我們使用VS 2008,.NET 3.5和其他網站(IIS中的不同應用程序池)的表單。 – Patrick 2011-04-19 15:26:45

0

試試這個:

打開命令提示符以管理員身份並插入以下文字:

如果您正在使用32位機: 「C:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319 \ ASPNET_REGIIS.EXE -i」

對於64位機: 「C:\ WINDOWS \ Microsoft.NET \ Framework64 \ v4.0.30319 \ ASPNET_REGIIS.EXE -i」

如果不行試試這個:

右鍵單擊System.Web.Routing引用,轉到屬性並將CopyLocal設置爲true。

希望這會有所幫助。

+0

這是對我舊帖子的舊回覆(其中我對此不太清楚我的意圖,我很抱歉) – Patrick 2011-04-21 09:29:53

1

我剛剛寫了一篇blogpost'回合這個問題,雖然它更多的是關於在現有的WebSite項目中集成MVC3的規則。您應該可以通過右鍵單擊VS中的項目將WebApplication轉換爲網站,應該有一個選項可以在菜單中進行轉換。 要讓MVC3在WebSite Project中運行,只需將Controllers和Models-folder放在App_Code下。