Asp.net mvc 2 使用ASP.NET MVC2,IIS 6不会转发空路由

Asp.net mvc 2 使用ASP.NET MVC2,IIS 6不会转发空路由,asp.net-mvc-2,iis-6,routes,url-routing,hosted,Asp.net Mvc 2,Iis 6,Routes,Url Routing,Hosted,首先让我解释一下,我使用的是托管解决方案,在IIS 6的配置和设置方面,我无能为力 我的MVC2工作到一定程度,我使用以下Global.asax代码: public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( "Default",

首先让我解释一下,我使用的是托管解决方案,在IIS 6的配置和设置方面,我无能为力

我的MVC2工作到一定程度,我使用以下Global.asax代码:

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

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

        routes.MapRoute(
            "Root",
            "",
            new { controller = "Default", action = "Index", id = "" }
        );
    }
在第一个路由中,我必须指定{controller}.aspx,因为IIS 6无法执行非aspx代码(或者类似的代码,不太确定)

这很好,以下工作: hxxp://mysite.com/home.aspx, hxxp://mysite.com/projects.aspx, hxxp://mysite.com/contact.aspx

这些都是控制器,我也可以执行他们受人尊敬的操作

问题是我不能正确地创建空URL(即hxxp://mysite.com/),它给我一个“目录列表被拒绝”错误

我的问题是,如果根目录下有一个default.aspx文件(它执行),我可以不使用简单的Response.Redirect加载主控制器吗

谢谢,,
Matthew

您得到“目录列表被拒绝”这一事实意味着您没有默认文档,因此服务器试图显示根文件夹上的文件列表


将默认文档更新为类似“Default.aspx”的内容。您的主机提供商应该对此有一个选项。这是很常见的。

您收到“拒绝目录列表”这一事实意味着您没有默认文档,因此服务器试图显示根文件夹上的文件列表


将默认文档更新为类似“Default.aspx”的内容。您的主机提供商应该对此有一个选项。这是很常见的。

您得到的“目录列表被拒绝”这一事实意味着isapi文件与MVC不匹配。

您得到的“目录列表被拒绝”这一事实意味着isapi文件与MVC不匹配。

您可以在IIS6和IIS7上禁用此行为

// Disable IIS looking at physical files and directories
RouteTable.Routes.RouteExistingFiles = true;

您可以在IIS6和IIS7上禁用此行为

// Disable IIS looking at physical files and directories
RouteTable.Routes.RouteExistingFiles = true;

MVC2不使用默认文档,这就是问题所在。它通过Global.asax文件提供所有路由。不,我认为您看到的问题是IIS,而不是网站。尝试添加默认文档,以便IIS知道在未指示文档时将请求路由到何处。在那之后,你的MVC路由将接收请求。我尝试过了,它只加载Default.aspx,而路由根本不会被接收。这没有任何意义。我什么都没有。抱歉,MVC2没有使用默认文档,这就是问题所在。它通过Global.asax文件提供所有路由。不,我认为您看到的问题是IIS,而不是网站。尝试添加默认文档,以便IIS知道在未指示文档时将请求路由到何处。在那之后,你的MVC路由将接收请求。我尝试过了,它只加载Default.aspx,而路由根本不会被接收。这没有任何意义。我什么都没有。对不起,这是最准确的答案,但并没有真正解决我的问题。解决方案是只包含一个“default.aspx”页面,创建一个新的MVHttpRequest。这是最准确的答案,但并没有真正解决我的问题。解决方案是只包含一个“default.aspx”页面,该页面创建一个新的MVHttpRequest。