IIS 7.5上的ASP.NET MVC

◇◆丶佛笑我妖孽 提交于 2020-03-06 19:38:04

我使用Visual Studio 2010 RC运行Windows 7旗舰版(64位)。 我最近决定在IIS上运行/调试我的应用程序,而不是随附的dev服务器。

但是,每次我尝试运行MVC应用程序时,都会收到以下错误:

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

错误信息

模块DirectoryListingModule

通知ExecuteRequestHandler

处理程序StaticFile错误

代码0x00000000请求

URL http:// localhost:80 / mySite /

物理路径C:\\ myProject \\ mySite \\

登录方法匿名登录

用户匿名

我在目录中放置了default.aspx文件,我收到以下错误:

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

有没有其他步骤我忘了采取这个工作?

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

以下是我所拥有的IIS的已安装功能。


#1楼

此外,如果你的应用程序是预编译的,你应该有

PrecompiledApp.config

在您的应用程序的根文件夹中,否则您也可以获得HTTP Error 403.14


#2楼

我有另一个导致这个问题的问题。

  • 我确保我的应用程序池在集成模式下运行.net 4
  • 我运行了aspnet_regiis.exe -i
  • 我已检查文件夹权限是否已正确设置为运行我的应用程序池的帐户

这些都没有奏效。 事实证明,在system.webserver> modules下的web.config中,我有以下内容:

<remove name="WindowsAuthentication" />

显然,这删除了Windows身份验证模块,它似乎以某种方式将一切都击败了。

我希望这对某人有所帮助,因为这要花费我一个晚上的大部分时间!


#3楼

我们将MVC应用程序移动到新服务器。 安装了.NET 4和MVC 3,但我们仍然得到“错误403.14”。 在这种情况下,这意味着IIS不理解它正在处理MVC应用程序,它正在寻找默认页面。

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

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


#4楼

确保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>

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


#5楼

我突然遇到了同样的404.14问题。 最后,通过在发布配置文件设置中取消选中“发布时预编译”来解决该问题。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!