我使用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问题。 最后,通过在发布配置文件设置中取消选中“发布时预编译”来解决该问题。
来源:oschina
链接:https://my.oschina.net/stackoom/blog/3189210