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

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?

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 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

Method 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)


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x