IIS 7中的ASP MVC导致:HTTP错误403.14 – 禁止
我正在开发一个ASP MVC Web项目。 现在我有一个要求,迫使我部署到IIS7 inmiddle开发(检查一些function)。 当我尝试input网站的URL时,我收到上述错误信息。 (注:开发机器:Vista Home Premium,IIS7)
到目前为止我所做的是:
编辑HOSTS文件(C:\ WINDOWS \ system32 \ drivers \ etc \ hosts)。
把两个域名(127.0.0.1 domain1.com&127.0.0.1 domain2.com)。
创build一个文件夹c:\网站\ dirOfApplication并从Visual Studio 8内部署到此文件夹。
在IIS7中创build了一个主机名为domain1.com和application文件夹的新站点。
在Web浏览器中input地址domain1.com会导致上述错误(HTTP错误403.14 – 禁止 – Web服务器configuration为不列出此目录的内容。)
我想我错过了什么,但不知道是什么! 尝试部署文件System.Web.Mvc,System.Web.Abstraction&System.Web.Routing具有相同的结果。 每当我尝试击中F5并运行应用程序,它工作正常!
也许对某人有用:在将我的应用程序转换为使用.NET框架4.5的MVC 4并将框架安装到使用IIS 7.0的服务器上之后,我遇到了与问题中提到的相同的“禁止”错误。 我尝试了上述所有的选项都无济于事,当我注意到
<system.webServer> <modules runAllManagedModulesForAllRequests="true"/> </system.webServer>
从我的web.config丢失。 添加完毕后,一切正常。 简单但容易忽略…
编辑:
当然上面的解决scheme是可行的,但这确实是浪费资源。 我认为最好是在评论中添加Chris Herring指出的路由模块。
<system.webServer> <modules> <remove name="UrlRoutingModule-4.0" /> <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" /> </modules> </system.webServer>
在这里回答,在这里 ,问题: 403 – 在iis7.5上禁止基本的MVC 3部署
运行aspnet_regiis -i
。 通常我发现你需要做到这一点,以获得4.0应用程序的工作。 以Administrator
身份打开命令提示符(右键单击命令提示符图标并select以pipe理员身份运行):
cd \ cd Windows\Microsoft.NET\Framework\v4.xxx.xxx aspnet_regiis -i
一旦安装并注册,请确保您的应用程序正在使用设置为.NET 4.0的应用程序池。
更新:我刚刚发现这个命令的问题。 使用-i将所有应用程序池更新到ASP.NET 4.0。
使用aspnet_regiis -ir
安装ASP.NET的版本,但不会将任何Web应用程序更改为此版本。 您可能还需要查看-iru选项。
我也遇到了这个错误。 所有的configuration和权限是正确的。 但是我忘了将Global.asax复制到服务器上,这就是403错误。
这是因为你太(我)在做什么太确定!
在我的机器上安装了IIS 7,但所需的ASP.NET组件(控制面板 – >程序 – >打开/closures – > ASP.NET)不是。
所以安装这个解决了这个问题
在我的情况下,以下方法帮助我:
-
Windows\Microsoft.Net\Framework
aspnet_regiis -i
-
将模块添加到system.webServer
<system.webServer> <modules runAllManagedModulesForAllRequests="true"/> ... </system.webServer>
如果您正在运行x64,请检查您是否在应用程序池设置中启用了32位应用程序
我遇到过同样的问题。 这微软支持文章修复了我。
https://support.microsoft.com/en-us/help/2023146/mvc-2-and-asp.net-4-web-forms-applications-that-use-url-routing-might-return-http- 404-错误-当-它们-尝试到进程-扩展名的URL上-IIS -7-和-IIS-7.5
在Windows控制面板“程序和function”应用程序的“打开或closuresWindowsfunction”对话框中执行以下步骤:
- 导航到以下节点:Internet信息服务 – >万维网服务 – >通用HTTPfunction
- 确保select了“HTTP错误redirect”选项。
-要么-
- 导航到以下节点:Internet信息服务 – >万维网服务 – >性能function
- 确保select了“静态内容压缩”选项。 select任一选项后,单击“确定”保存更改。
重新启用HTTP错误redirect模块或静态内容压缩模块可确保ASP.NET和IIS正确同步HTTPpipe道事件。 这使URL路由模块能够处理无扩展名的URL。
检查下面显示的设置:
1)在IIS Server
上为IIS_IUSRS
用户提供必要的权限(右键单击网站,然后select编辑权限>安全性)。
2)如果您使用.NET Framework 4
,请确保您的网站使用的Application Pool
.NET Framework版本为v4.0
。
希望这可以帮助…
在取消选中“预编译在发布期间” – 我刚刚在VS2015中编写的Web服务上遇到了403.14错误,所以我在VS2013中重写了它,并得到相同的错误。 在这两种情况下,我都有“发布期间的预编译”。 我没有选中它,但仍然得到错误。 在我的情况下,我也有“ 发布之前删除所有现有的文件 ”,但没有删除服务器上的目标目录中的所有内容,然后复制新发布的文件。 如果你不这样做 – 一个“ PrecompiledApp.config ”文件被留下,导致问题。 一旦我删除了这个文件,我的Web服务的VS2013和VS2015版本都是黄金的。
如何解决“HTTP错误403.14 – 禁止Web服务器configuration为不列出此目录的内容”
当您运行托pipe在IIS 7 +上的MVC 2+时发生此错误,这是因为ASP.NET 4未在IIS中注册。 在我的情况下,我创build了一个MVC 3项目,并将其托pipe在IIS 7.5上。
为了解决这个问题,确保你已经安装了MVC 2或者更高版本,安装.Net Framework 4.0,然后以pipe理员身份运行一个命令提示符并input下面一行:
32位(x86)
%windir%\ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe -ir
64位(x64)
%windir%\ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_regiis.exe -ir
我在这里尝试了一切。 没有工作。 问题出现在我的Web.config
文件中,不知何故依赖的程序集绑定从最小1
变为最小0
。
<!-- was --> <runtime> <assemblyBinding> <dependentAssembly> <assemblyIdentity name="System.Web.Mvc" /> <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" /> <!-- should have been --> <bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
我也遇到了同样的错误,尽pipe所有提供的解决scheme由于以下原因:
- 缺lessDLL
- 数据库连接string指向一个不可访问的服务器。
检查你的Global.asax文件。 就我而言,这是空的。
在我的情况下,web.config和除/ bin文件夹以外的所有文件都丢失(不能复制)。
傻了,但这是我检查的最后一件事。
请注意有时错误Managed pipeline mode
将导致此错误。 有两种select来selectintegrated
和classic
。
我最近有这个错误,发现问题是由我的Windows服务器上未启用function“HTTPredirect”引起的。 这个博客文章帮助我通过故障排除来find答案(尽pipe是较旧的Windows Server版本): http : //blogs.msdn.com/b/rjacobs/archive/2010/06/30/system-web-routing-routetable新服务器的不工作与iis.aspx转到计算机pipe理,然后向下滚动到Web服务器angular色,然后单击add role services
我一直在使用身份模拟器:
<system.web> <identity impersonate="true" userName="domain\username" password="password"/> </system.Web>
推送到服务器时,您必须将用户名访问权限授予Temporary ASP.NET
Files文件夹,以便可以正确读/写/执行:
C:\Windows\Microsoft.NET\"frameworkversion"\"aspversion"\Temporary ASP.NET Files
显然用您正在使用的版本replace“frameworkversion”和“aspversion”。
我正在使用:Win Server 2012 R2 / IIS 8.5 / MVC4 / .Net 4.5
如果以上都没有工作,那么试试这个:
取消选中“发布期间的预编译”
这踢了我几天。
使用C#4.5的ASP.NET项目我通过在Web Platform Installer中安装 ASP.NET扩展来解决这个问题
还有一件事情是可能的
手动安装.net framework 4.0
此解决scheme适用于窗口7上的IIS7
打开cmd与pipe理previleges
转到目录“C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319”
键入aspnet_regiis.exe -i
通过input运行命令“inetmgr”来获得您的inetpipe理器
刷新你的IIS7
重新加载网站。
我遇到了这个问题,但是通过访问Internet信息服务(IIS)pipe理器,双击目录浏览并单击启用,可以很容易地解决这个问题。
在我的情况下,我可以直接访问文件,但无法访问文件夹。
如果最佳答案不起作用,请在主机目录中查找名为PrecompiledApp.config
的configuration,如果存在,请将其删除。 此文件可以防止IISExpress和LocalIIS正常工作。 (我认为这是一个错误)在我的情况下,文件的内容是:
<precompiledApp version="2" updatable="true"/>
而且我100%的肯定是这个问题,因为我在2个小时内试了一切,并用这个configuration进行了很多次testing。
还有一件事:你不能在较新版本的Windows和IIS中使用aspnet_regiis
,所以试试
dism /online /enable-feature /featurename:IIS-ASPNET45 /all
我知道你在一个内部主机上有这个问题,但是之前在外部主机上遇到过这样的问题,在我的情况下,它有自己的解决方法,也许可以节省一些时间:
事实上,我的网站是由于某种原因,目前我不知道,如果你有同样的问题检查出来,在WebsitePanel主页转到网站 – >网站,然后从列表中select您的网站的域名,然后在刚刚打开的页面右侧,检查是否看到单词STARTED,否则,如果看到STOPPED这个单词,请重新开始。 就这样。
步骤1:select在IIS中产生HTTP错误的站点,然后点击目录浏览,如下图所示:
步骤2:在IIS中的目录浏览窗口中,单击右侧的操作中的启用,如下图所示:
现在,您的聊天室目录浏览已启用,只需在IIS中重新启动Web应用程序,然后在浏览器中浏览网站并查看结果。
您可以通过以下步骤轻松解决:
打开iis manager并select你想要部署的站点(从左侧的treeview面板),然后双击应用程序设置图标打开应用程序设置对话框,然后你应该看到屏幕上的网格视图,所以双击名为网页的行:启用 ,设置值为true (默认为false)。
它为我工作,因为在我之前,我收到了同样的错误,我甚至启用目录浏览 (作为官方iis指南在iis论坛推荐),但是当我浏览网站播种目录列表,而不是实际的网页,但是当我做了上面的步骤解决了问题,每一件事情都很好(但不要忘了在解决这个问题之后,在sqllogin中授予asppool的访问权限)
正如我所说的那样对我来说效果不错,我希望它对你也好运