【发布时间】:2018-02-12 15:04:40
【问题描述】:
我们公司发布了一个基于 MVC 的产品(针对 v4.5),该产品已停止在客户站点上运行,原因似乎是环境问题 - 曾经运行没有问题的构建现在给出了 403.14 - The Web server is configured to not list the contents of this directory。
.
我认为正在发生的事情......
- 用户访问http://server/AppName
- 因为是 MVC 应用,所以应该使用默认路由 (
Reports/Index)。 - IIS 正在寻找默认文档...
- ...如果没有找到,它假定用户想要列出目录的内容...
- ...未启用,因此会引发 403.14。 .
到目前为止我尝试过的...
- 直接访问路由.. 导致 404 错误。所以我很漂亮 确保 IIS 没有意识到它应该使用路由。
- 使用
aspnet_regiis向IIS 注册ASP.Net。这是从Framework64文件夹中完成的,因为...- 操作系统是 64 位 - Windows Server 2008(不带 Hyper-V 的标准)
- IIS 是 64 位的 - 虽然
Enable 32-Bit Applications是真的
- Checked AppPool 的目标是框架的 v4 - 确实如此。
- 将 AppPool 模式更改为
Classic- 很确定它应该被集成,但值得排除它。现在又回到Integrated - 确认
RunAllManagedModulesForAllRequests在web.config中设置为true。 -
web.config的<system.webServer>部分中定义的已检查权限条件得到满足 - 它们满足。 - 创建并部署了最简单的 MVC 应用程序 - 同样的问题。
- 以管理员身份运行命令 shell 使用
aspnet_regiis -ua取消注册 ASP.Net 并使用aspnet_regiis -enable -i重新注册。我们遇到了几个权限问题 -Temporary ASP.NET Files目录丢失了,但是一旦找到它们,我们又回到了同样的错误。 - 添加了一个简单的
default.htm- 如果存在,它会响应http://server/AppName 请求而提供。
我已经没有什么想法了,所有的谷歌点击都暗示了上述的一些组合 - 或者启用目录浏览(我认为这只是一个症状而不是根本原因)。
另外,不确定它是否相关,但 IIS 中应用程序可用的可配置元素的数量似乎比我预期的要少...
【问题讨论】:
-
您的应用程序中是否也有一个名为
Reports的文件夹? -
好点 - 没有
Reports文件夹,只有一个ReportsController。感谢您的建议(并花时间回复) -
您是否更改了路由配置或任何 app_data 文件夹中的任何样板配置代码。你能分享那个代码吗?
-
否 - 没有任何改变。该应用程序是从 MSI 安装的。以前有效,现在无效。此外,该网站是预编译的,因此客户也没有更改它。
-
道歉 - 当我说“没有任何改变”时,我指的是“路由配置中的样板配置代码”。很明显,有些东西发生了变化,或者它不会停止工作。
标签: asp.net asp.net-mvc asp.net-mvc-4 routes iis-7