2

当第一次向 ServiceStack 服务发出请求时,它会进入并查找所有 Razor 视图,编译并缓存它们。为存储的已编译视图缓存的程序集在哪里?在发布模式下,更新视图本身会重建缓存的程序集吗?

我问这些问题是因为我在生产盒上看到了一个非常奇怪的问题。我更新了我的整个网站,对一堆剃刀视图进行了更改。但是由于一些非常奇怪的原因,我的旧视图正在被渲染,我没有看到视图有任何变化。

  1. 我已经重启了至少十几次
  2. 我已从服务器中删除所有内容(所有站点文件)并重新部署
  3. 我已经直接在服务器上更新了视图,看看是否可以显示任何更改
  4. 我已经更新了 web.config,所以应用程序可以重新启动
  5. 我已将 Temp ASP.NET 文件夹更改为 C:\Temp
  6. 我已经更改了一个静态图像文件,看看是否是 IIS 引起的。但是不,IIS 看到新的图像文件并将其发送到浏览器。
  7. 我已经验证我的所有文件在服务器上都是正确的。

会发生什么?服务器如何渲染旧的剃刀视图?

我知道很多这都是模糊的,但任何帮助将不胜感激。

4

1 回答 1

0

编译后的 razor 视图缓存在内存中的程序集中。只需触摸 web.config 以回收 AppDomain 即可。我不确定您为什么会看到旧的剃刀视图,可能是浏览器或反向代理缓存服务器上的一些中间缓存。

于 2013-05-13T15:36:14.080 回答