2011-06-17 81 views
0

我已經在IIS 6 Windows Server 2003中的虛擬目錄中設置了通配符,指向C:\ Windows \ Microsoft.NET \ Framework \ v2 .0.50727 \ aspnet_isapi.dll但它沒有工作。然後我嘗試設置爲C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_isapi.dll,它工作正常。但我不想讓它在v4中工作,因爲我在同一個應用程序池中有其他應用程序需要在.NET2中工作。IIS 6中的ASP.NET MVC 2只能與.NET 4配合使用

我這樣做walkthrough這是我找到的最好的,但它仍然只是.NET的4

我目前的解決方案是設置有一個應用程序池與.NET 4版本的新VirtualDirectory。但是這看起來不太合適,因爲對於MVC2來說,.NET35 SP1應該足夠了。

有人與此問題交叉?

它應該與3.5 ... 我使用Reflector來檢查是否有任何使用.NET 4的dll可能會搞砸了,但我沒有找到任何。

謝謝!

回答

1

我跟很多這樣的指令,但沒有一次成功。 其實他們工作,如果我指向C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_isapi.dll。指向v4 isapi是沒有意義的,因爲它假設在.NET 4中沒有任何東西。

我試圖找到一些.dll,可能是推動應用程序在.NET4而不是3.5中工作,但是我找不到任何。

對此的解決方案遷移到MVC 3並使用清晰的.NET4,毫無疑問,工作正常和最新版本。

現在好了,但沒有真正解決上述問題。

0

通過遵循http://go.microsoft.com/?LinkId=9394801上的一些說明,我能夠在IIS6中運行ASP版本2和框架3.5。

我有一個虛擬目錄,添加一個新的擴展名*和可執行文件C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ aspnet_isapi.dll並取消選中虛擬目錄下的'檢查文件是否存在'選項標籤的配置...按鈕。在下面的更新之後,mvc應用程序沒有指定任何擴展名,例如.mvc或.aspx。我還沒有測試過這是否會導致性能下降。

我默認的global.asax.cs文件現在看起來像

 routes.MapRoute(
      "Default", 
      "{controller}/{action}/{id}", 
      new { action = "Index", id = "" } 
     ); 

     routes.MapRoute(
       "Root", 
       "", 
       new { controller = "Home", action = "Index", id = "" } 
     ); 

ASP2不承認<%:腳本標記,所以我不得不刪除那些和包裝用的Response.Write內容() 。例如。

<li><%: Html.ActionLink("Home", "Index", "Home") %></li> 

成爲

<li><% Response.Write(Html.ActionLink("Home", "Index", "Home")); %></li> 
+0

我遵循了許多這樣的指令,但他們都沒有工作。 下面的答案。 –