【发布时间】: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