Visual studio 在IIS 6上部署Asp.Net MVC 2/C#4.0应用程序

Visual studio 在IIS 6上部署Asp.Net MVC 2/C#4.0应用程序,visual-studio,visual-studio-2010,asp.net-mvc-2,iis-6,Visual Studio,Visual Studio 2010,Asp.net Mvc 2,Iis 6,从VS.Net 2008/MVC 1迁移到VS.Net 2010(+C#4.0)/MVC 2 这个站点在Cassini运行良好,但我现在的问题是在IIS 6上部署 我用, 但无论我尝试什么URL,我总是有一个404错误。这就好像没有考虑到路由(是的,已经完成了) 我不明白这一团糟,无法谷歌任何有趣的东西。。。 谢谢你的建议 我想我知道发生了什么:在IIS6以及通配符映射上,您需要一个默认文档(default.aspx),将文件夹请求路由到MVC处理程序 有一个包含在MVC1项目模板中,但在MVC

VS.Net 2008/MVC 1迁移到VS.Net 2010(+C#4.0)/MVC 2

这个站点在Cassini运行良好,但我现在的问题是在IIS 6上部署

我用, 但无论我尝试什么URL,我总是有一个404错误。这就好像没有考虑到路由(是的,已经完成了)

我不明白这一团糟,无法谷歌任何有趣的东西。。。
谢谢你的建议

我想我知道发生了什么:在IIS6以及通配符映射上,您需要一个默认文档(default.aspx),将文件夹请求路由到MVC处理程序

有一个包含在MVC1项目模板中,但在MVC2中

Default.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="YourNameSpace._Default" %>

<%-- Please do not delete this file. It is used to ensure that ASP.NET MVC is activated by IIS when a user makes a "/" request to the server. --%>
当你说“好像路由没有考虑在内”时,我怀疑它实际上没有考虑到,这是你的问题。

好的,我得到了y的答案(感谢一位同事)

从ASP.Net 2.0迁移到ASP.Net 4.0时, 如果你遇到同样的问题, 如果允许使用ASP.NETV4,请签入Web服务扩展

在我的例子中,在安装.NETFramework4之后,它是被禁止的


威尔和马克:谢谢你的帮助,希望它能帮助其他人。

这终于为我解决了问题:

我之前评论过,有点过早。我对Mark B的帖子的评论是让我的初始索引视图显示出来,但当我导航到任何其他视图时,我总是得到404错误

在这个特定的论坛上,绿色复选标记批准的解决方案也让我分心,但我甚至看不到桌面上IIS6中的web服务器扩展文件夹;因此,我无法从启用aspnet 4.0的角度进行控制,尽管我通过运行以下命令行确保安装了它:

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319> aspnet_regiis -i
现在,对于最终允许我导航到除主页/索引之外的其他视图的实际部分:

在VS 2010解决方案的
Global.asax.cs
文件中,您将在
RegisterRoutes
方法中看到如下代码:

  routes.MapRoute(
      "Default", // Route name
      "{controller}/{action}/{id}", // URL with parameters
      new { controller = "Home", action = "Index", id = UrlParameter.Optional });
我只是在标记的{action}部分后面添加了“.aspx”,如下所示:

  routes.MapRoute(
      "Default", // Route name
      "{controller}/{action}.aspx/{id}", // URL with parameters
      new { controller = "Home", action = "Index", id = UrlParameter.Optional });
还有ahla wahla花生酱和果冻三明治0)

如果您想在C#中执行此操作,只需添加System.DirectoryServices参考,这一部分就可以很好地完成此工作

DirectoryEntry w3svc = new DirectoryEntry("IIS://localhost/W3SVC");
w3svc.Invoke("EnableWebServiceExtension", "ASP.NET v4.0.30319");
w3svc.CommitChanges();

HTH

我试图部署使用“添加新项目…”创建的默认项目,但遇到了相同的问题。还在谷歌上搜索答案,但希望得到你的建议……我总是被通配符映射和该死的“验证文件存在”复选框搞砸了。擦洗一切,从第一步开始,然后遵循这个:当我说擦洗一切,我的意思是擦洗一切。不要认为某事是正确的。从第一步开始,每件事都要检查三遍。我又做了一次,但还是不起作用。我正在使用的应用程序在MVC 1中工作得非常好,但是自从我转到.Net 4/MVC 2后,路由被破坏了。。。正如我在之前的评论中所说,我尝试了示例应用程序,但无法使其工作。谢谢你的帮助。还有其他建议吗?我也有同样的问题,我在所有方面都得到了404,我从第一步开始。值得注意的是,对于.NET 4,不再需要使用isapi通配符映射来让无扩展URL在IIS6中工作。谢谢你的回答。不幸的是,我已经有了一个Default.aspx,后面的代码几乎相同。我试图使用您的代码(唯一的区别是将结束路径重写回原始路径),但它仍然不起作用。尽管如此,我还是得到了一个大线索:当我尝试我的根url(或该应用程序的任何url)时,IIS会在iisreset或服务器重新启动后很快返回404错误事件。我想它不会装载任何东西!用C#4.0以这种方式检查问题。(仅供参考,url是)哇,这个问题让我发疯了(我在.NET3.5W/IIS6中使用MVC2),但这解决了它!谢谢
DirectoryEntry w3svc = new DirectoryEntry("IIS://localhost/W3SVC");
w3svc.Invoke("EnableWebServiceExtension", "ASP.NET v4.0.30319");
w3svc.CommitChanges();