1

現在、スウェーデンとフランスの 2 つのカルチャをサポートしている MVC クラウド ベースのプロジェクトがあります。

今私のクライアントに応じて、彼の文化に従ってリソースファイルを作成したい

ここでの問題は、Azure クラウドに再デプロイしたくなくても、リソース ファイルを動的に追加したいということです

リモート デスクトップを使用して、特定のカルチャの Dll を Azure に直接コピーすることは可能ですか?

私はこれが私のローカルマシンであると試しましたが、失敗しましたが、ソリューションをコンパイルすると、Binフォルダーに追加された新しいDllが新しいカルチャで機能しました

コストがかかるため、DBヒットが大きな問題であるクラウドベースのローカリゼーションの最良のアプローチは何ですか

4

3 に答える 3

3

MikeWo のソリューションの代わりに、カスタムResourceProviderFactoryの作成を検討できます。MSDNには、外部アセンブリをロードできるサンプルの ExternalResourceProviderFactory を作成する方法を示す例があります。

このクラスを変更して、BLOB ストレージからアセンブリをダウンロードさせることができます。カスタム ResourceProviderFactory を作成したら、それを web.config に追加するだけで済みます。スタートアップ タスクを使用する必要はありません。

<globalization uiCulture="auto" culture="auto"
     resourceProviderFactoryType="CustomResourceProviders.ExternalResourceProviderFactory, CustomResourceProviders, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f201d8942d9dbbb1" />
于 2012-08-08T10:45:55.740 に答える
0

サテライト アセンブリを BLOB ストレージに保存し、アプリケーションでバックグラウンド タスクを使用して、特定の BLOB コンテナーからすべてのアセンブリを定期的に取得することをお勧めします。Web ロールのバックグラウンド プロセスを起動して BLOB コンテナーを調べ、bin フォルダーにあるサテライト アセンブリを確認できます。BLOB コンテナーで新しいアセンブリ (または更新されたアセンブリ) が見つかった場合は、それをプルダウンできます。

私は長い間サテライト アセンブリを扱っていないので、使用中のアセンブリを更新できるかどうか、またはすぐに動作を開始する場合に新しいものをビンにドロップするかどうかはわかりません。このような「ホット スワップ可能な」アプローチが機能しない場合は、少なくともスタートアップ タスクで同様のロジックを使用して、BLOB ストレージからアセンブリを取得し、サービス構成の更新を実行するだけです (RoleEnvrionmentChanging イベントを処理します)。 . これは完全な再デプロイではありません。

于 2012-08-08T10:35:30.787 に答える
0

RDP を使用してソリューションを変更しないでください。長期的には機能しません。 (内部で何か問題が発生した場合、Azure には cspkg を使用してアプリケーションを復元するテナンシーがあります。この場合、RDP を介して行われた変更は反映されません) リソース ファイルを Azure に配置してみてください。必要なときに選択します。

于 2012-08-08T10:38:51.287 に答える