2011-06-17 45 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

我遵循了许多这样的指令,但他们都没有工作。 下面的答案。 –