我使用Visual Studio 2010 RC运行Windows 7 Ultimate(64位)。我最近决定让VS在IIS上运行/调试我的应用程序,而不是在附带的开发服务器上。

然而,每次我尝试运行MVC应用程序,我得到以下错误:

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

错误信息

模块DirectoryListingModule

通知ExecuteRequestHandler

汉德勒统计错误

代码0x00000000请求

URL http://localhost: 80 / mySite /

物理 路径C: \ myProject \ mySite \

登录方法匿名登录

匿名用户

我设置了一个默认值。aspx文件在目录中,我收到以下错误:

HTTP错误500.21 -内部服务器 错误处理程序 "PageHandlerFactory-Integrated"有一个 坏模块“ManagedPipelineHandler”在 其模块列表

还有其他我忘了做的步骤吗?

注意:我在安装VS 2010 RC之后安装了iis7.5。在Visual Studio 2010中,我使用了MVC项目的“属性”中“Web”选项卡下的内置“创建虚拟目录”按钮。我确保应用程序使用的是ASP。NET 4应用程序池。

下面是我已经安装的IIS特性。


当前回答

虽然这看起来很奇怪,但重新安装IIS对我来说是有效的,在.net version文件夹中运行以下命令:

aspnet_regiis.exe /i

当我第一次运行这个命令时,我开始得到HTTP错误403.14。但是当我再次运行这个命令时,问题就解决了。

我还做了另一件事,在重新安装IIS之前,从服务器管理界面的服务器功能中删除了HTTP重定向。也许这对解决问题也有影响,但我不确定。所以,如果重新安装IIS仍然不工作,请尝试删除HTTP重定向再试一次。希望这对你也有用。

其他回答

为这个问题添加另一个解决方案。

在我的Global.asax.cs文件中,我使用以下方法禁用了试图被MVC管道消耗的php文件:

路线。IgnoreRoute("{*php}");

我以前在一个MVC c2项目中做过这些,它工作得很好,但在我的MVC 3应用程序中这样做会导致上面报告的问题。

我们有一个MVC应用程序移动到一个新的服务器。net 4和MVC 3安装,但我们仍然得到“错误403.14″。在这种情况下,这意味着IIS不知道它正在处理一个MVC应用程序,它正在寻找默认页面。

解决方案很简单:服务器上没有安装HTTP重定向。

服务器管理器—角色—Web服务器(IIS)—角色服务—HTTP重定向:未安装。安装了它,问题就解决了。

我创建了一个新的命名空间(因此文件夹)相同的路由到一个控制器(例如MvcApp/Test/SomeClasses.cs和MvcApp/Controllers/TestController.cs)。这也导致了403.14!

如果你在Windows 8或Server 2012上运行IIS 8.5,你可能会发现运行mvc 4/5 (.net 4.5)不能在虚拟目录下工作。如果您在主机文件中创建一个本地主机条目以指向本地计算机,然后将一个新的本地IIS网站指向该文件夹(带有匹配的主机头条目),那么您将发现它可以工作。

我一度改变了我的默认路线:

routes.MapRoute(
"Default",
    "{controller}/{action}/{id}",
    new { controller = "Home", action = "Index", id = UrlParameter.Optional }

To:

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

这就给出了你的误差。很高兴有人提到了路由,因为我可能永远都在这上面。