【问题标题】:Whys is IISExpress giving 404, when server IIS works当服务器 IIS 工作时,为什么 IISExpress 会给出 404
【发布时间】: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


【解决方案1】:

与 Windows 10 上的 VS2017 相同的问题,默认 IIS Express 和 Windows 上的 git。突然 iisexpress 在 /Default.aspx 上返回 404!!??

解决方案:

  1. 关闭VS2017
  2. 删除文件系统中的 git 存储库。
  3. 打开VS2017
  4. 克隆 git 存储库

这对我的机器有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-26
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 2011-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多