
数日前、3.70の新しいバージョンがリリースされ、開発者はWindows Azureの完全なサポートを追加しました。 以前のバージョンでは、ストア所有者はAzureで1つのインスタンスしか使用できませんでしたが、現在では複数のインスタンスのサポートが追加されています。 したがって、本質的に、この機能はWebファームで使用できます。 これにより、アプリケーションを拡張する絶好の機会が得られます。
AzureでnopCommerceを既にダウンロード( http://www.nopcommerce.com/downloads.aspx )およびインストール( http://docs.nopcommerce.com/display/nc/Installing+nopCommerce )しているとします。 したがって、Azureをサポートするために何が行われたか、およびこれらすべてを構成および有効化する方法:
BLOBストレージ
これで、デフォルトで行われているように、ファイルシステムにリソースを保存するだけでなく、リソース(製品やカテゴリの画像など)のストレージをBLOBとして設定できるようになりました。 Azureのストレージサービスの詳細については、こちら( https://azure.microsoft.com/en-us/documentation/articles/storage-introduction/ )をご覧ください 。
nopCommerceでのセットアップ方法:
- もちろん、最初にWindows AzureでストレージBLOBアカウントを作成する必要があります。 この手順はここで詳しく説明されています( https://azure.microsoft.com/ru-ru/documentation/articles/storage-create-storage-account/ )
- その後、このリポジトリから接続文字列、コンテナ、エンドポイントを取得できます。
- 次に、nopCommerceでweb.configファイルを開く必要があります。 AzureBlobStorage XML要素を見つけ、以前に取得した接続文字列、コンテナー、およびエンドポイントを入力します
- これが完了すると、リソースはAzure BLOBに保存されます
キャッシュと分散セッション
もちろん、どの分散アプリケーションでも、分散キャッシュとセッションをサポートする必要があります。 そうしないと、アプリケーションの異なるインスタンスが異なるデータを使用します。 Azureと他の多くのクラウドサービスが既にサポートしているため、この機能を実装するためにRedis( http://redis.io/ )を選択しました。
nopCommerceでのセットアップ方法:
- 最初にRedisをインストールします。 AzureでRedisを使用する方法については、こちら( https://azure.microsoft.com/en-us/documentation/articles/cache-dotnet-how-to-use-azure-redis-cache/ )で詳しく説明されています 。
- 前の手順が完了したら、nopCommerceのweb.configファイルでRedisから接続文字列をコピーして指定する必要があります。 XML要素「RedisCaching」を見つけ、「Enabled」属性を「True」に設定し、次の属性で接続文字列自体をRedisに指定します。 キャッシュされたすべてのデータがRedisに保存されるようになりました
- セッションについても同じことを行います。 web.configファイルを再度開き、「sessionState」要素のコメントを解除して、前の手順で使用したのと同じ接続文字列を指定します
<sessionState mode="Custom" customProvider="MySessionStateStore"> <providers> <add name="MySessionStateStore" type="Microsoft.Web.Redis.RedisSessionStateProvider" host="localhost" accessKey="" ssl="true" /> </providers> </sessionState>
バックグラウンドタスク(スケジュールタスク)
そして最後のステップ。 nopCommerceは、自動的に実行する必要があるさまざまなアクティビティのバックグラウンドタスクを使用します。 たとえば、メールの送信や為替レートの更新。 もちろん、アプリケーションのインスタンスが複数ある場合、そのようなタスクはそのうちの1つでのみ実行する必要があります。 そうしないと、同じレターが2回(アプリケーションの各インスタンスから)バイヤーに届くときに状況が発生する可能性があります。
nopCommerce
web.configファイルも開きます。 XML要素「WebFarms」を見つけ、その属性「MultipleInstancesEnabled」を「True」に設定します。 これはWebファームには十分ですが、Windows Azureでは、同じ場所でRunOnAzureWebsites属性をTrueに設定する必要があります。
以上です。 これで、nopCommerceは、Azureでのいくつかのコピー(インスタンス)に対する本格的な作業の準備が整いました。 サーバーの容量が多数の顧客にサービスを提供するのに十分であるかどうかを考える必要がなくなりました。