当服务器IIS工作时,IISExpress为什么会给出404?

时间:2018-10-11 16:40:34

标签: 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临时压缩文件\ Clr4IntegratedAppPool   是无效的。静态压缩被禁用。

我尝试过的事情。

  • 卸载VS / IISExpress并重新安装,包括删除程序文件中的所有文件夹
  • 创建一个新项目并复制代码。 (有效,但稍后再发生)
  • 使用其他计算机。 (有效,但最终该计算机也遇到了问题)
  • 试图创建临时文件夹并赋予“所有人”完全控制权。
  • 尝试更改端口号并重新创建虚拟目录
  • 试图删除整个解决方案文件夹并重新克隆存储库。

此问题仅在本地不会在Web服务器上发生。

有什么想法吗?我找不到任何告诉IIS压缩文件的配置,所以不确定为什么我一直看到该错误。

修改

我确定,即使在global.asax中,application_start都不会触发(如果调试器出现问题,它中的StreamWriter代码将记录到文件中)。所以我认为404是因为路由从未注册。

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

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

我认为该问题与某些dll错误有关,项目一旦发布似乎就可以工作。

enter image description here

编辑3

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

1 个答案:

答案 0 :(得分:0)

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

解决方案:

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

这对我的机器有帮助。