所以我拥有所有更新的代码,整个解决方案构建。它可以在其他人的机器上运行,但是当我尝试在我的机器上访问localhost/extranet
时,它会给我这个错误:
HTTP错误403.14 - 禁止
详细错误信息:
Module DirectoryListingModule
Notification ExecuteRequestHandler
Handler 0x00000000
Requested URL http://localhost:80/extranet/
Physical Path C:\svn\K2\trunk\appteam\web\Chatham.Web.UI.Extranet\
Logon Method Anonymous
Logon User Anonymous
现在我尝试进入IIS7,并启用目录浏览,这消除了错误,但仍然没有启动我的网站。我也尝试进入并禁用默认文档,重新启用它,一切,没有任何效果。我也重启了IIS几次无济于事。
有什么想法吗?
答案 0 :(得分:9)
听起来你的IIS没有为您的应用程序处理路由规则,并且正在尝试查找default.aspx,index.htm等。既然它不能,它想要显示目录列表(这就是为什么你得到了404.14)。
我刚检查了我的开发设置,并且认为您的AppPool必须设置为Integrated,而不是AppPool的Managed Pipeline上的Classic。我之前遇到过这种情况,可能有办法使用Classic Pipeline,但这将是/应该是解决问题的最快方法。要检查/更改管道模式,请单击IIS左侧菜单中的“应用程序池”,找到AppPool并查看托管管道列。如果设置为Classic - >右键单击AppPool,选择基本设置,然后将下拉列表从Classic更改为Integrated。
如果我不对,有人请随时在评论中纠正我。
编辑 - 只需添加,您可以在Classic Pipeline模式下运行MVC应用程序,但您必须执行IIS 6技巧才能使其正常工作。主要是,您需要打开MVC的通配符脚本映射才能在经典模式下工作,如果不是,它需要一个.aspx文件(或类似文件),以便它可以处理从IIS到.NET的执行管道。
答案 1 :(得分:6)
导致此错误从您网站的根目录中删除 Global.asax 文件。
要解决此问题,请将Global.asax文件添加到项目中。
答案 2 :(得分:3)
在IIS中,您需要找出运行应用程序的应用程序池。只需右键单击Sites>Manage Web Site>Advanced Settings
下的Web应用程序即可。第一个属性应该是应用程序池。
现在,点击Application Pools
。您应该看到一个名为“Identity”的列。将该用户添加到C:\svn\K2\trunk\appteam\web\Chatham.Web.UI.Extranet\
目录的ACL中。如果它只是说'ApplicationPoolIdentity',它可能有点棘手figuring out the user。如果它只是在DefaultAppPool
下运行,则可以使用IIS AppPool\DefaultAppPool
。
答案 3 :(得分:2)
更改“开始页面”'右键单击页面,然后选择“设置为起始页面”。您希望在Web应用程序首先启动时首先打开它。这可能会解决您的问题。 :)
答案 4 :(得分:0)
还要确保在IIS应用程序池设置中Enabled 32-bit Applications
下的Advanced Settings
设置为FALSE。我花了好几个小时试图解决这个问题,这是我的问题。 Windows Server 2012 IIS 8.5
答案 5 :(得分:0)
我的解决方案是因为我没有通过“打开和关闭Windows功能”安装ASP.NET,因此很简单。我通过启用目录浏览器并尝试转到我的views文件夹来解决这个问题,该文件夹随后给出了更具描述性的答案,并且几乎说模块存在问题,因为ASP.NET的安装不正确。然后它突然出现在我的计算机上,以进行安装。
答案 6 :(得分:0)
我通过设置确切的.net框架解决了这个问题。我的网站使用的是v4.0版本的.net。
希望这会有所帮助
答案 7 :(得分:0)