App domain restarts when .resx file changes. Any way to avoid this?

两盒软妹~` 提交于 2019-11-30 16:06:11

问题


I have an ASP.NET app with many .resx (resource) files used for localized user controls and pages.

We would like these files to be editable on-the-fly.

However, we have noticed that editing these files on the web server causes the app domain to reload, which causes the server to slow down for about a minute while the app domain restarts.

Is there any way to permit editing of these files without causing the app domain to restart?


回答1:


There are several flavors of this question on Stackoverflow; to repeat the answer, yes, it's definitely possible.

Like much of .NET, resource providers are extendable.

I would argue that the built-in resource providers (that compile .resx to .resources) are an unfortunate mismatch for web-centric deployments.

If your settings are primarily strings, you can plug in a simple UpdatableResXResourceProvider that uses the built-in ResXResourceReader to read from existing *.resx files.

The results are cached in the application cache.

No assemblies are generated – updates are immediately read just as they would be with any other file-based CacheDependency – any number of updates can be applied at run-time.

The only caveat is that if you don’t want to disable built-in FCNs, you have to move the *.resx files to the shielded App_Data folder (trivially done with a post-build step).

You can download the UpdatableResXResourceProvider here: http://www.onpreinit.com/2009/06/updatable-aspnet-resx-resource-provider.html




回答2:


This blog post should help you out. I suspect its this:

The number of re-compilations (aspx, ascx or asax) exceeds the limit specified by the setting in machine.config or web.config (by default this is set to 15)



来源:https://stackoverflow.com/questions/1535027/app-domain-restarts-when-resx-file-changes-any-way-to-avoid-this

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!