代码之家  ›  专栏  ›  技术社区  ›  Jeremy Morgan

Resx文件的奇怪IIS缓存行为

  •  2
  • Jeremy Morgan  · 技术社区  · 16 年前

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

    我的第一个想法是,这些更改对于VisualStudio构建它们来说还不够剧烈,但是在发布之后,我可以在新的resx文件中验证这些更改。此外,我可以在服务器上实际确认resx中的更改,打开网页,更改不会显示出来。我想可能有一台服务器在缓存它,但从多个互联网连接来看都是一样的。

    我已经试过了

    • 我重新启动了IIS,包括单个站点和整个服务。
    • 我已经回收了应用程序池。
    • 我已清除.net文件夹中的所有临时文件。
    • 我插入了元标记以指示没有缓存
    • 我已经删除了resx,访问了该站点并得到了错误,然后重新发布了它。
    • 我已经彻底改变了resx文件的大小,希望它能触发一些东西。
    • 我已经彻底改变了字段中文本的数量,但没有一个显示出来。
    • 我已经三次检查了我在resx中请求的字段是否正确。
    • 我已验证我的Web主机未使用任何缓存服务。

    1 回复  |  直到 16 年前
        1
  •  4
  •   Jennifer Zouak    16 年前
    1. 仔细检查已更改文件和临时文件的安全权限。如果web服务器的帐户无法读取它们,则不会显示您所做的更改。

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

    3. 另外,强制站点重新编译也是一个好主意(但你已经做到了)。有时,在资源文件更改后,我要做的是打开aspx页面,在末尾添加一个空格,保存并关闭。瞧,它将被重新编译。