即使更改了cshtml文件,dotnet.exe也会使用缓存

时间:2018-04-10 08:36:41

标签: c# caching iis asp.net-core .net-core

我将ASP.NET Core MVC应用程序部署到我的服务器,并将其托管在IIS中。配置绑定,一切正常。这就是问题所在:

  1. 我更改了一个cshtml文件
  2. 我只将该cshtml文件上传到相关文件夹
  3. 内的服务器上
  4. 我调用公共操作,返回该cshtml文件的PartialView
  5. 它不是更新版本
  6. 我从服务器删除cshtml文件,然后再次调用该操作
  7. 它提供文件,而文件不再存在
  8. 我重新启动IIS,再次提供文件
  9. 我杀了dotnet.exe,再次提供文件
  10. 我完全删除Views文件夹,仍然提供文件
  11. 这里有什么不妥?

1 个答案:

答案 0 :(得分:1)

对于将来可能遇到此问题的任何人,这是因为ASP.NET Core MVC 2.0.5已开箱即用view precompilation

这意味着虽然我们不希望我们的视图被预编译,但我们在发布文件夹中看到*.PrecompiledViews.dll已上传到服务器。

因此,它不会从Views文件夹中找到视图,而是从相关的dll文件中加载它们。

如果您想更改此行为,只需在<MvcRazorCompileOnPublish>false</MvcRazorCompileOnPublish>文件中加入.csproj即可。

this GitHub issue

中了解详情