C# mvc路由生成iis 7.5错误禁止

C# mvc路由生成iis 7.5错误禁止,c#,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-routing,C#,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc Routing,我在我的Web应用程序中有一个ASPX WebForms页面: ~/ASPWebforms/MyFolder/Default.aspx 如果我使用此代码: public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapPageRoute(

我在我的Web应用程序中有一个ASPX WebForms页面:

~/ASPWebforms/MyFolder/Default.aspx

如果我使用此代码:

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
        routes.MapPageRoute(
                    "SomeRoute",
                    "Test/{reportname}",
                    "~/ASPWebforms/MyFolder/{reportname}.aspx"
       );
然后在浏览器中输入:

localhost/MySite/Test/Default

我得到了所需的结果:显示页面~/ASPWebforms/MyFolder/Default.aspx。

但是如果我使用下面的 代码

试一试

localhost/MySite/Test

IIS 7.5说:

HTTP错误403.14-禁止将Web服务器配置为不列出 此目录的内容

我在最后一段代码中是否做错了什么?


提前谢谢

在IIS 7.5上重新安装.NET 4 x86和x64,并设置网站的.NET版本。 默认情况下,我编写简单的x86命令

正在停止IIS: 1) IIS设置/停止

Stup命令(默认情况下用于iis.net Stup): 2) cd%windir%\Microsoft.NET\Framework\v4.0.30319 3) aspnet_regiis.exe-i

重置命令(对于通过将.net更改为.net 4版本的iis): 4) aspnet_regiis.exe-iru

正在启动IIS:
5) iisreset/start

尝试使用如下设置默认值的重载之一设置路由:

            routes.MapPageRoute(
                    "SomeRoute",
                    "Test/{reportname}",
                    "~/ASPWebforms/MyFolder/{reportname}.aspx",
                    false,
                    new RouteValueDictionary(new {reportname = "Default"})
            );

我不太相信它会解决你的问题,但如果它与你的原始示例一起使用,它会很好地解决问题。

我有很多类似的事情,从阅读周围的内容来看,它似乎可能是由几种不同的事情引起的。就我而言,我有一条这样的路线:

routes.MapPageRoute("signin", "signin", "~/SignIn/SignIn.aspx")
因此路由路径是
/signin
,但也有一个名为
/signin
的文件夹包含.aspx页面

我得到了错误的回复 HTTP错误403.14-禁止。Web服务器配置为不列出此目录的内容

当我将这一行添加到route config时,这一点已得到修复:

routes.RouteExistingFiles = true;
错误消息有一点道理:
/signin
是一个目录,web服务器配置为不列出其中的文件。除非另行配置,否则此文件路径似乎优先于路由

我尝试过的其他事情:

  • 我不需要使用不同的
    MapPageRoute
  • 我不需要在下面的web.config中添加
    UrlRoutingModule
    system.webServer |模块
    。没有这一点也行
  • 它在没有web.config设置的情况下工作
    我确实有其他原因,但如果我删除它,那么这个修复仍然有效
  • 我确实在机器的
    服务器管理器| Web中安装了服务器功能“Http重定向”
    服务器|添加角色服务
    对话框,但再次删除后仍然有效

谢谢您的回答!不幸的是,如果我输入“localhost/MySite/Test”,我仍然会得到“HTTP错误403.14-禁止”。如果我输入“localhost/MySite/Test/Default”,我会得到想要的结果。谢谢你的回答!不幸的是,这不适合我。
routes.RouteExistingFiles = true;