Asp.net mvc 4 当服务器IIS工作时,为什么IISExpress给出404

Asp.net mvc 4 当服务器IIS工作时,为什么IISExpress给出404,asp.net-mvc-4,visual-studio-2017,iis-express,Asp.net Mvc 4,Visual Studio 2017,Iis Express,我正在windows 10上使用Visual Studio 2017 15.8.7版 此问题发生在Asp.net MVC 4网站和Web Api 2上。不适用于Aspnet.Core站点(目前为止) 最近我一直有问题,我将调试一个网站,它将工作良好,然后突然下一次你启动项目,它给出了一个404错误。修复错误的唯一方法是使用不同的计算机,创建一个新项目,然后将信息复制到另一台计算机上 每次启动调试器并获取404时,都会记录此事件 为缓存压缩内容指定的目录 C:\inetpub\temp\IIS临时

我正在windows 10上使用Visual Studio 2017 15.8.7版

此问题发生在Asp.net MVC 4网站和Web Api 2上。不适用于Aspnet.Core站点(目前为止)

最近我一直有问题,我将调试一个网站,它将工作良好,然后突然下一次你启动项目,它给出了一个404错误。修复错误的唯一方法是使用不同的计算机,创建一个新项目,然后将信息复制到另一台计算机上

每次启动调试器并获取404时,都会记录此事件

为缓存压缩内容指定的目录 C:\inetpub\temp\IIS临时压缩文件\Clr4IntegratedAppPool 这是无效的。正在禁用静态压缩

我尝试过的事情

  • Uninstal VS/iisex按并重新安装,包括删除程序文件中的所有文件夹
  • 创建一个新项目并复制代码。(起作用,但随后再次发生)
  • 使用不同的计算机。(工作正常,但最终那台电脑也会出问题)
  • 尝试创建临时文件夹并让“所有人”完全控制它
  • 已尝试更改端口号并重新创建虚拟目录
  • 已尝试删除整个解决方案文件夹并重新克隆repo
该问题不会发生在web服务器上,仅在本地发生

知道发生了什么事吗?我找不到任何告诉IIS压缩文件的配置,所以不确定为什么我一直看到这个错误

编辑

我确定即使在global.asax中也不会启动应用程序(其中包含StreamWriter代码,以便在调试器出现问题时登录到文件)。所以我假设404是因为路由从未注册

我尝试将Microsoft.AspNet.Mvc更新为最新的5.2.6

编辑2 所以我找到了一个解决办法。我在本地安装了IIS,并将其发布到文件夹,然后通过附加到进程进行调试。如果我将IIS直接指向项目或在VS中使用IIS,那么它将不起作用

我认为这个问题和一些愚蠢的东西有关,这个项目一经发布似乎就可以工作了

编辑3


找到了问题的根源。我在windows上使用Ubuntu/bash。通过bash克隆git repo似乎设置了错误的权限。如果通过命令行进行克隆,则不会发生此问题。现在我需要弄清楚为什么bash会破坏文件权限。

Windows 10上的VS2017、默认IIS Express和git for Windows也存在同样的问题。突然,iisexpress在/Default.aspx上返回404

解决方案:

  • 关闭VS2017
  • 删除文件系统中的git存储库
  • 开放VS2017
  • 克隆git回购协议

  • 这对我的机器很有帮助。

    什么是完整的404错误页面?关于压缩的事件可能不相关。添加了404的屏幕截图。您是否设置了以下默认页面?是的,已经尝试过了。这与该项目无关。如果我把代码放到另一台计算机上,它会工作一段时间。我想电脑上的一些文件被破坏了。