【问题标题】:HTTP 403.14 - Forbidden when endpoint is /tests/HTTP 403.14 - 当端点是 /tests/ 时被禁止
【发布时间】:2019-10-30 02:17:16
【问题描述】:

我有一个 ASP.Net Core 应用程序,在 Startup.cs 中设置了通常的默认路由。我的应用有一个TestsController,有一些动作例程,包括一个Index() 例程。

在今天之前,我在导航到我的应用程序的 /tests//tests/index 端点时从未遇到过问题。到今天为止,尝试导航到 /tests 会给我 IIS HTTP Error 403.14 - Forbidden 错误页面。如果我尝试导航到 /tests/index,则会看到 IIS HTTP Error 404.0 - Not Found 页面。

我的应用程序中的所有其他端点似乎都可以正常工作。失败的只是 /tests 端点。

如果我将控制器从 TestsController 重命名为 TestController(删除“s”),那么导航到 /test/test/index 都没有问题。

所以,这听起来像是 IIS 可能正在寻找一个它认为我正在尝试列出的 Tests 文件夹?但我可以在 Windows 资源管理器中看到的唯一 Tests 文件夹位于 obj\Debug\netcoreapp2.2\Razor\Views 文件夹中。我不认为 IIS 会因此而绊倒。

另一个数据点:昨天,我遇到了一个奇怪的问题,VS 2019 会加载我的项目并立即抱怨“VS 使用的进程遇到了不可恢复的错误”。我最终发现这是由我正在处理的标签助手的存在引起的(出于某种未知原因)。删除标签助手代码解决了这个问题。但令人怀疑的是,现在我遇到了这个新问题。假设标签助手问题留下了一些碎屑,我删除了所有 bin 和 obj 文件夹,删除了所有 NuGet 包,重新启动(几次)并重建了所有内容。不走运,我仍然无法导航到 /tests 端点。

编辑:另一个数据点:我刚刚在另一台机器上尝试了相同的代码,它工作正常。问题被隔离在一台机器上。

我如何询问 IIS 它认为它在哪里找到了 tests 文件夹?

【问题讨论】:

    标签: visual-studio iis asp.net-core


    【解决方案1】:

    不是很有帮助的答案,但这是我所得到的......我在 MS 技术支持部门度过了令人沮丧的一周,但没有解决方案。最后,我核对本地 repo 并重新克隆它,问题就消失了。

    真的很奇怪。如果我只是重命名解决方案及其所有项目的父目录,那么问题就消失了。如果我将目录重命名回原来的名称,那么问题又来了。

    【讨论】:

      猜你喜欢
      • 2014-07-29
      • 1970-01-01
      • 1970-01-01
      • 2012-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-17
      • 1970-01-01
      相关资源
      最近更新 更多