【发布时间】:2019-03-16 19:58:10
【问题描述】:
我在 Windows 10 上使用 Visual Studio 2017 版本 15.8.7。
此问题发生在 Asp.net MVC 4 网站和 Web Api 2 中。不适用于 Aspnet.Core 网站(到目前为止)
最近我在调试一个网站时遇到了一些问题,它可以正常工作,然后在你下次启动项目时突然出现 404 错误。修复错误的唯一方法是使用不同的计算机,创建一个新项目并复制信息。
每次我启动调试器并得到 404 时,都会记录这个事件。
为缓存压缩内容指定的目录 C:\inetpub\temp\IIS 临时压缩文件\Clr4IntegratedAppPool 是无效的。正在禁用静态压缩。
我尝试过的事情。
- 卸载 VS / IISExpress 并重新安装,包括删除程序文件中的所有文件夹
- 创建一个新项目并复制代码。 (有效,但稍后会再次发生)
- 使用不同的计算机。 (有效,但最终该计算机也遇到了问题)
- 尝试创建临时文件夹并让“所有人”完全控制它。
- 尝试更改端口号并重新创建虚拟目录
- 尝试删除整个解决方案文件夹并重新克隆 repo。
此问题不会发生在 Web 服务器上,仅发生在本地。
知道发生了什么吗?我找不到任何告诉 IIS 压缩文件的配置,所以不知道为什么我一直看到这个错误。
编辑
我确定即使在 global.asax 中的 application_start 也永远不会触发(其中的 StreamWriter 代码记录到文件以防调试器出现问题)。所以我认为 404 是因为路由永远不会被注册。
我尝试将 Microsoft.AspNet.Mvc 更新到最新的 5.2.6。
编辑 2 所以我找到了一个解决方法。我在本地安装了 IIS 并发布到一个文件夹并通过附加到进程进行调试。如果我将 IIS 直接指向项目或在 VS 中使用 IIS,则它不起作用。
我认为这个问题与某些 dll 愚蠢有关,项目似乎一旦发布就可以工作。
编辑 3
找到问题的根源。我在 Windows 上使用 Ubuntu/bash。通过 bash 克隆 git repo 似乎设置了错误的权限。如果我通过命令行克隆,则不会发生此问题。现在我需要弄清楚为什么 bash 搞砸了文件权限。
【问题讨论】:
-
什么是完整的 404 错误页面?关于压缩的事件可能无关紧要。
-
添加了 404 的截图。
-
是的,已经尝试过了。它与项目无关。如果我将代码下载到另一台计算机,它会工作一段时间。我认为计算机上的某些文件已损坏或其他原因。
标签: asp.net-mvc-4 visual-studio-2017 iis-express