在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个回答

0

我知道你在内部主机上遇到了这个问题,但我之前在外部主机上也遇到过类似的问题,并且我找到了解决方法,也许可以帮助节省一些人的时间:

实际上,我的网站由于某种原因被停止了,目前我还不清楚是什么原因,如果你遇到了同样的问题,可以在WebsitePanel的主页面中选择Web->Websites,然后从列表中选择你的网站域名,在刚打开的页面的右侧检查是否看到“STARTED”这个词,如果看到“STOPPED”这个词,就让它重新启动即可。就这样。


0

0

在尝试了这里提出的每个解决方案之后,我发现另一个可能的解决方案:URLScan

IIS已禁用WebDAV,即使在我的应用程序的web.config中,WebDAV的处理程序和模块也被删除。PUT仍然返回403-Forbidden,而IIS日志中没有任何记录。(GET / POST工作正常)。

结果发现,IIS启用了一个活动的ISAPI过滤器(URLScan),阻止了所有PUT。删除URLScan后,它对我起作用了。


0

我的情况与这些完全不同,而403:禁止错误消息有点误导。

如果Global.asax模块中的Application_Start()函数尝试访问web.config并且它正在引用的条目不存在,则IIS会出现故障,并(由于某种原因)抛出403:禁止错误消息。

请仔细检查您在Global.asax模块中尝试访问的web.config文件中是否缺少一个条目。


0
我正在使用:Win Server 2012 R2 / IIS 8.5 / MVC4 / .Net 4.5
如果以上方法都不起作用,请尝试以下方法:
取消选中“发布期间预编译”
这个问题困扰了我几天。

@d-kermott,也许我的发现对你也有用? - Kamil Gareev

0
在使用C# 4.5的ASP.NET项目中,我通过在Web平台安装程序中安装ASP.NET扩展来解决这个问题。

0

我知道这是一个老话题,但如果您在调试时有一个与控制器中的路由同名的文件夹,则也可能会出现此错误。

例如,如果您有一个名为UserController的控制器,其中有一个名为/User的路由,并且您的解决方案中还有一个名为“User”的文件夹,则IISExpress将尝试浏览该文件夹而不是显示您的视图。


0

我也遇到了同样的错误,尽管提供了以下解决方案:

  • 缺少 DLL 文件
  • 数据库连接字符串指向无法访问的服务器。

-1

我一直在使用身份模拟:

<system.web>
    <identity impersonate="true" userName="domain\username" password="password"/>
</system.Web>

当向服务器推送时,您必须授予用户名访问Temporary ASP.NET文件夹的权限,以便它可以正确地读取/写入/执行:

C:\Windows\Microsoft.NET\"frameworkversion"\"aspversion"\Temporary ASP.NET Files

显然,将“frameworkversion”和“aspversion”替换为您正在使用的版本。


-1

我曾经遇到过这个问题,但是通过进入Internet Information Services (IIS) Manager,双击Directory Browsing并点击Enable轻松解决了它。

在我的情况下,我可以直接访问文件,但无法访问文件夹。


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