首先,让我解释一下,我正在使用托管解决方案,而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 = "" }
        );
    }

在第一个路线中,由于IIS 6无法执行非ASPX代码(或类似的内容,不确定),因此我必须指定{Controller} .aspx。

没关系,以下工作:hxxp://mysite.com/home.aspx,hxxp://mysite.com/projects.aspx,hxxp://mysite.com/contact.aspx.aspx.aspx

这些都是控制者,我也可以执行他们尊敬的行动。

问题是我无法正确执行空的URL(即HXXP://mysite.com/),它给我一个“目录列表拒绝”错误。

我遇到的问题是,default.aspx文件位于root(执行),我可以在不使用简单响应的情况下加载home Controller。

谢谢你,马修

有帮助吗?

解决方案

您获得的“目录列表被拒绝”的事实意味着ISAPI FILETR与MVC合作不匹配。

其他提示

您正在获得“拒绝目录列表”的事实意味着您没有默认文档,因此服务器正在尝试在根文件夹上显示文件列表。

将默认文档更新为“ default.aspx”之类的东西。您的托管提供商应该有一个选择。这很普遍。

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

// Disable IIS looking at physical files and directories
RouteTable.Routes.RouteExistingFiles = true;
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top