asp.net - .resx 文件更改时应用程序域重新启动。有什么办法可以避免这种情况?

标签 asp.net iis localization resources resx

我有一个 ASP.NET 应用程序,其中包含许多用于本地化用户控件和页面的 .resx(资源)文件。

我们希望这些文件可以即时编辑。

但是,我们注意到在 Web 服务器上编辑这些文件会导致应用程序域重新加载,这会导致服务器在应用程序域重新启动时减速约一分钟。

有没有办法允许编辑这些文件而不导致应用域重新启动?

最佳答案

这个问题在 Stackoverflow 上有多种形式;重复答案,是的,这绝对是可能的。

与 .NET 的大部分内容一样,资源提供程序是可扩展的。

我认为内置资源提供程序(将 .resx 编译为 .resources)与以 Web 为中心的部署不匹配。

如果您的设置主要是字符串,您可以插入一个简单的 UpdatableResXResourceProvider,它使用内置 ResXResourceReader 从现有的 *.resx 文件中读取。

结果缓存在应用程序缓存中。

不会生成任何程序集——更新会立即被读取,就像使用任何其他基于文件的CacheDependency一样——可以在运行时应用任意数量的更新。

唯一需要注意的是,如果您不想禁用内置 FCN,则必须将 *.resx 文件移动到 protected App_Data 文件夹(通过后期构建即可轻松完成)步骤)。

您可以在此处下载 UpdatableResXResourceProvider: http://www.onpreinit.com/2009/06/updatable-aspnet-resx-resource-provider.html

关于asp.net - .resx 文件更改时应用程序域重新启动。有什么办法可以避免这种情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1535027/

相关文章:

php - 问题 - FastCGI 池队列已满

ios - 如何阅读本地化的 plist 作为字典?

jsf - JSF 中的本地化,如何记住每个 session 而不是每个请求/ View 选择的区域设置

asp.net - 如何查明 ASP.NET Web 应用程序重新启动的原因

c# - 如何从 asp.net 访问纯 html 表格的单元格内容

windows - Powershell 更新 IIS 绑定(bind)

WCF - IIS 与自定义主机

ios - 本地化文件未显示在选项上

asp.net - 使用 OData 插入具有关系的记录

c# - 更改中继器中链接按钮的文本