我在使用 .net 2.0 和 IIS 6 的网站上遇到了一些奇怪的问题。该网站使用 resx 文件,因此已本地化为多种语言。在其中一些文件中,我们对 resx 进行了更改并重新编译,但所做的更改不会显示在网站上。曾经。这种情况主要发生在一种语言(阿拉伯语)中,但偶尔也会发生在其他语言中。
我的第一个想法是,这些更改不足以让 Visual Studio 构建它们,但发布后我可以验证新 resx 文件中的更改。我也可以在服务器上物理确认 resx 中的更改,然后打开网页,但更改不会显示。我认为可能有一台服务器正在缓存它,但在多个互联网连接中它是相同的。
我已经尝试过的
- 我已重新启动 IIS,包括各个站点和整个服务。
- 我已重新启动服务器。
- 我已经回收了应用程序池。
- 我已清除 .net 文件夹中的所有临时文件。
- 我已将 header 插入网站,将其设置为无缓存并进行验证
- 我已插入元标记来指示无缓存
- 我已删除该 resx,访问该网站并收到错误,然后重新上传。
- 我已经大幅改变了 resx 文件的大小,希望它能触发一些东西。
- 我极大地改变了字段中的文本量,但没有任何文本显示出来。
- 我已经三重检查,确保我在 resx 中请求正确的字段。
- 我已验证我的网站主机未使用任何缓存服务。
由于某种原因,这些改变并没有发生。任何有帮助的想法将不胜感激,这让我和这里其他知识渊博的人完全难住了。
最佳答案
仔细检查已更改文件和临时文件的安全权限。如果网络服务器的帐户无法读取它们,则您的更改将不会显示。
确保您有“中立”文化资源的条目。如果您的主 resx 文件中没有条目,那么编译器将不会发出代码来翻译该特定标签/按钮等。
强制网站重新编译也是一个好主意(但你已经在那里了)。有时,我在更改资源文件后所做的就是打开 aspx 页面,然后在末尾添加一个空格,保存并关闭。瞧,它将被重新编译。
关于.net - Resx 文件的奇怪 IIS 缓存行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2299052/