ローカライズされたユーザーコントロールとページに使用される多くの.resx(リソース)ファイルを含むASP.NETアプリがあります。
これらのファイルをオンザフライで編集できるようにしたいと思います。
ただし、ウェブサーバーでこれらのファイルを編集すると、アプリドメインが再読み込みされ、アプリドメインの再起動中にサーバーの速度が約1分間低下することがわかりました。
アプリドメインを再起動せずにこれらのファイルの編集を許可する方法はありますか?
ローカライズされたユーザーコントロールとページに使用される多くの.resx(リソース)ファイルを含むASP.NETアプリがあります。
これらのファイルをオンザフライで編集できるようにしたいと思います。
ただし、ウェブサーバーでこれらのファイルを編集すると、アプリドメインが再読み込みされ、アプリドメインの再起動中にサーバーの速度が約1分間低下することがわかりました。
アプリドメインを再起動せずにこれらのファイルの編集を許可する方法はありますか?
Stackoverflowには、この質問のいくつかのフレーバーがあります。答えを繰り返すために、はい、それは間違いなく可能です。
多くの.NETと同様に、リソースプロバイダーは拡張可能です。
組み込みのリソースプロバイダー(.resxを.resourcesにコンパイルする)は、Web中心の展開では不幸なミスマッチであると私は主張します。
設定が主に文字列である場合は、組み込みのResXResourceReaderを使用して既存の*.resxファイルから読み取る単純なUpdatableResXResourceProviderをプラグインできます。
結果はアプリケーションキャッシュにキャッシュされます。
アセンブリは生成されません。更新は、他のファイルベースのCacheDependencyの場合と同じようにすぐに読み取られます。実行時に、任意の数の更新を適用できます。
唯一の注意点は、組み込みのFCNを無効にしたくない場合は、*。resxファイルをシールドされたApp_Dataフォルダーに移動する必要があることです(ビルド後の手順で簡単に実行できます)。
ここ からUpdatableResXResourceProviderをダウンロードできます: http ://www.onpreinit.com/2009/06/updatable-aspnet-resx-resource-provider.html
このブログ投稿はあなたを助けるはずです。私はこれを疑っています:
再コンパイルの数(aspx、ascx、またはasax)が、machine.configまたはweb.configの設定で指定された制限を超えています(デフォルトでは、これは15に設定されています)。