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


当前回答

如果你的应用是预编译的,你应该有

PrecompiledApp.config

在你的应用程序的根文件夹,否则你可能会得到HTTP错误403.14以及。

其他回答

我使用WebDeploy IIS扩展将我的网站从IIS6导入到IIS7.5,因此所有的IIS设置都与生产环境中的设置完全相同。在尝试了这里提供的所有解决方案后,没有一个对我有效,我只需要将网站的应用程序池设置从经典更改为集成。

对于我来说,在Azure Server 2012 R2 IIS 8.5虚拟机上使用Asp。Net MVC 5应用程序(bin部署MVC 5)我必须从一个提升cmd提示符做以下工作,即使我已经安装了4.5:

dism /online /enable-feature /featurename:IIS-ASPNET45

来源:http://support.microsoft.com/kb/2736284

我还使用以下PowerShell强行安装了所有IIS功能:

import-module servermanager
add-windowsfeature web-server -includeallsubfeature

来源:http://www.iis.net/learn/install/installing - iis 85/installing iis - 85 - windows server 2012 r2

现在我的应用程序正在工作。

有人可能会得到这个错误的另一个原因是,如果文件全局。Asax已经不在根文件夹中了。

确保你的web.config中有以下设置:

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

更好的解决方案:

尽管上述解决方案绝对有效,但它可能会导致其他问题,因为它会在每个请求上运行所有注册的HTTP模块(甚至在.jpg .gif .css .html .pdf等每个请求上),这显然是浪费资源。而不是

<system.webServer>
<modules>
  <remove name="UrlRoutingModule-4.0"/>
  <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" preCondition="" />
</modules>
</system.webServer>

确保前置条件属性为空意味着它将在所有请求上运行。[阅读更多](http://www.britishdeveloper.co.uk/2010/06/dont-use-modules-runallmanagedmodulesfo.html,“阅读原文”)

我也收到这个错误,发现“HTTP重定向”没有在Windows服务器中打开。这篇博文也指出了这一点:http://blogs.msdn.com/b/rjacobs/archive/2010/06/30/system-web-routing-routetable-not-working-with-iis.aspx