.net - Resx 文件的奇怪 IIS 缓存行为

标签 .net caching localization iis-6 resx

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

我的第一个想法是,这些更改不足以让 Visual Studio 构建它们,但发布后我可以验证新 resx 文件中的更改。我也可以在服务器上物理确认 resx 中的更改,然后打开网页,但更改不会显示。我认为可能有一台服务器正在缓存它,但在多个互联网连接中它是相同的。

我已经尝试过的

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

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

最佳答案

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

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

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

关于.net - Resx 文件的奇怪 IIS 缓存行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2299052/

相关文章:

c# - IMemoryCache 保证唯一的新 key .NET-Core

java - 获取给定半径(米)和位置的最大经纬度

java - java中距离的国际化

ios - Xcode 7 UI 测试目标语言环境和区域设置

c# - C#中的JSON反序列化错误

c# - 无法创建文件 "c:\User\...\Appdata\Roaming..."。访问被拒绝

python - 使用 SQLAlchemy ORM,如何监听对 "noload"或设置为惰性的 "raise"关系的调用?

java - 如何让 Reactor Core 的 Flux 缓存工作

c# - 在 Entity Framework 和 Linq to Entities 中使用规范模式和表达式

c# - 通过不同的线程同时读取和写入串行端口是否安全?