在IIS 7中使用ASP MVC会导致HTTP错误403.14 - 禁止访问。

149

我正在开发一个ASP MVC网站项目。现在我有一个要求,要求我在开发过程中将其部署到IIS7上(以检查某些功能)。每当我尝试输入网站的URL时,都会收到上述错误消息。(注意:开发机器:Vista Home Premium,IIS7)

目前为止我已经做了以下操作:

编辑HOSTS文件(C:\WINDOWS\system32\drivers\etc\hosts)。

在其中放入两个域名(127.0.0.1 domain1.com和127.0.0.1 domain2.com)。

创建一个文件夹c:\websites\dirOfApplication并从Visual Studio 8中部署到该文件夹。

在IIS7中创建一个新站点,主机名为domain1.com,应用程序文件夹为上述文件夹。

在Web浏览器中键入地址domain1.com将导致上述错误(HTTP Error 403.14 - Forbidden - The Web server is configured to not list the contents of this directory.)

我认为我漏了什么东西,但不知道是什么!尝试使用相同的结果部署System.Web.Mvc、System.Web.Abstraction和System.Web.Routing文件。每当我尝试按F5并运行应用程序时,它就能正常工作!


可能是ASP.NET MVC on IIS 7.5的重复问题。 - Fenton
34个回答

3
如果顶部的答案无法解决问题,可以在托管目录中查找名为PrecompiledApp.config的配置文件,如果存在则删除它。该文件会阻止IISExpress和LocalIIS正常工作。(我认为这是一个错误)在我的情况下,该文件的内容是:
<precompiledApp version="2" updatable="true"/>

我非常确定这是我的问题,因为我尝试了2个小时的所有方法,并使用此配置进行了多次测试。

还有一件事:您无法在较新版本的Windows和IIS中使用aspnet_regiis,请尝试

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

2

控制面板 > 打开或关闭Windows功能 > Web服务器 > 应用程序开发

勾选 ASP.NET


1
请注意,有时候错误的“托管管道模式”会导致此错误。有两个选择:选择“集成”或“经典”。

1
当您在IIS 7+上运行MVC 2+时,可能会出现“HTTP Error 403.14 - Forbidden The Web server is configured to not list the contents of this directory”的错误。这是因为ASP.NET 4未在IIS中注册。在我的情况下,我正在创建一个MVC 3项目并将其托管在IIS 7.5上。
要解决此问题,请确保已安装了MVC 2或更高版本和.Net Framework 4.0,然后以管理员身份运行命令提示符并键入以下行:
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

1
检查你的 Global.asax 文件。在我的情况下,它是空的。

1

在世界上,没有什么能够为我解决问题,

我找到了问题所在,这对某些人可能有帮助,

如果您正在使用 Plesk,则适用,我刚刚关闭了它,一切都开始正常工作了,

但是,我不知道它的确切问题所在。

enter image description here


我有同样的问题,我刚刚关闭了它,但仍然无法加载该网站。仍然遇到相同的403禁止访问错误。 - Victor_Tlepshev

1
我尝试了所有方法,但都没有奏效。问题出在我的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" />

0
如果你和我一样,使用NHibernate的应用程序,并且以上答案没有解决你的问题。
你应该查看应用程序中的连接字符串;可能在webconfig文件中确保它是正确的。

0
在我的情况下,web.config 和 /bin 文件夹之外的所有文件都丢失了(不知何故未被复制)。这很傻,但那是我最后检查的事情。

0

还有一件事情也是可能的

手动安装 .net framework 4.0

此解决方案适用于 Windows 7 上的 IIS7

以管理员权限打开 cmd

进入目录 "C:\Windows\Microsoft.NET\Framework\v4.0.30319"

输入 aspnet_regiis.exe -i

通过在运行命令中键入 "inetmgr" 进入您的 inet 管理器

刷新您的 IIS7

重新加载站点。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接