我使用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特性。


当前回答

您可以以管理员身份运行cmd来解决此错误 比

做同样的在图片为windows 32位

只做64位的改变framework64而不是框架 而不是去iis并刷新站点 如果你仍然得到一些错误,改变应用程序池

其他回答

还有一个可能发生这种情况的原因——您的RouteConfig.cs或WebApiConfig.cs无效。

在我的例子中,我有一个这样定义的路由(注意括号而不是大括号):

...
routeTemplate: "api/(something}"
...

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

还有一件事要确保你有以下设置在你的web.config:

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/> 
</system.webServer>

你也可以把appool切换到集成模式。感谢Michael Bianchi (https://stackoverflow.com/a/7956546/1143515),我只想强调这一点。

另一个可能的解决方案,如果你移动全局。asax,确保标记指向正确的MvcApplication类。希望这能在将来拯救一些人。