所以我拥有所有更新的代码,构建了整个解决方案。它可以在其他人的计算机上运行,但是当我尝试在我的计算机上访问 localhost/extranet 时,它会给出以下错误:
HTTP Error 403.14 - Forbidden
详细错误信息:
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,但没有效果。
有什么想法吗?
最佳答案
听起来您的 IIS 没有处理您的应用程序的路由规则,并且正在尝试查找 default.aspx、index.htm 等。由于它不能,它想要显示目录列表(这就是为什么您得到 404.14)。
我刚刚检查了我的开发设置,我认为您的 AppPool 必须设置为 Integrated,而不是 AppPool 的托管管道上的 Classic。我以前遇到过这个问题,可能有多种方法可以使用经典管道,但这将/应该是解决您的问题的最快方法。要检查/更改管道模式,请从 IIS 左侧的菜单中单击应用程序池,找到您的 AppPool 并查看托管管道列。如果设置为经典 -> 右键单击应用程序池,选择基本设置,然后将下拉列表从经典更改为集成。
如果我的理解有误,欢迎大家在评论中指正。
编辑 - 只是补充一下,您可以在经典管道模式下运行 MVC 应用程序,但您必须执行 IIS 6 技巧才能使其正常工作。主要是,您需要打开通配符脚本映射,MVC 才能在经典模式下工作,如果没有,则需要存在 .aspx 文件(或类似文件),以便处理从 IIS 到 .NET 的执行管道。
关于asp.net - HTTP 错误 403.14 - 访问网站时出现禁止错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7880852/