Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# mvc路由生成iis 7.5错误禁止_C#_Asp.net Mvc_Asp.net Mvc 3_Asp.net Mvc Routing - Fatal编程技术网

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命令.net Stup: 2 cd%windir%\Microsoft.NET\Framework\v4.0.30319 3aspnet_regiis.exe-i

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

正在启动IIS:
5iisreset/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;
错误消息有一点真实性:/sign是一个目录,web服务器配置为不在其中列出文件。除非另行配置,否则此文件路径似乎优先于路由

我尝试过的其他事情:

我不需要使用不同的MapPageRoute重载 我不需要将UrlRoutingModule添加到下的web.config中 system.webServer |模块。没有这一点也行。 它在没有web.config设置的情况下工作 我确实有其他原因,但如果我删除它,那么这个修复仍然有效。 我确实在机器的服务器管理器Web中安装了服务器功能Http重定向 服务器|添加角色服务对话框,但再次删除后仍有效。
谢谢你的回答!不幸的是,如果我输入localhost/MySite/Test,我仍然会收到HTTP错误403.14-禁止。如果我输入localhost/MySite/Test/Default,我会得到想要的结果。谢谢你的回答!不幸的是,这不适合我。
routes.RouteExistingFiles = true;