使用Resx文件的奇怪IIS缓存行为

时间:2010-02-19 19:36:05

标签: .net caching localization iis-6 resx

我在使用.net 2.0和IIS 6的网站时遇到了一些奇怪的问题。该网站使用resx文件,因此它以多种语言本地化。在其中一些文件中,我们对resx进行了更改并重新编译,并且更改未显示在网站上。永远。它主要用一种语言(阿拉伯语)发生,但偶尔也会出现其他语言。

我的第一个想法是,对于Visual Studio来说,这些更改并不足以构建它们,但是在发布后我可以验证新resx文件中的更改。此外,我可以进入服务器并在物理上确认resx中的更改,并打开网页并且未显示更改。我认为可能有一个服务器在工作缓存它,但它是从多个互联网连接相同。

我已尝试过的内容

  • 我已经重新启动了IIS,包括各个站点和整个服务。
  • 我重新启动了服务器。
  • 我已经回收了应用程序池。
  • 我清除了.net文件夹中的所有临时文件。
  • 我已将标头插入网站,将其设置为no-cache并进行验证
  • 我已插入元标记以指示无缓存
  • 我删除了resx,访问了网站并收到错误,然后重新上传。
  • 我已经彻底改变了resx文件的大小,希望它会触发一些东西。
  • 我彻底改变了字段中的文本数量,但都没有显示出来。
  • 我已经三次检查我要求resx中的正确字段。
  • 我已验证我的虚拟主机没有使用任何缓存服务。

由于某种原因,这些改变并没有采取。任何想法的帮助将不胜感激,这一个让我和其他知识渊博的人完全难过。

1 个答案:

答案 0 :(得分:4)

  1. 仔细检查已更改文件和临时文件的安全权限。如果Web服务器的帐户无法读取它们,则您的更改将不会显示。

  2. 确保您拥有“中立”文化资源的条目。如果主resx文件中没有条目,则编译器不会发出代码来翻译特定的标签/按钮等。

  3. 同样强制网站重新编译是一个好主意(但你有那个)。有时我在资源文件更改后执行的操作是打开aspx页面,只是添加一个空格到最后,保存并关闭。瞧它将被重新编译。

相关问题