下図のように MVC 統合を有効にしてインストールした Sitecore に Sitecore Azure 3.0 をインストールし、ホステッドサービスに パッケージをデプロイしてページを表示すると  Could not load file or assembly 'System.Web.Helpers ... というエラー画面が表示されました。

エラー内容は下図の通りです。どうやら MVC 用のアセンブリが不足していることが原因のようです。

今回は 上記 MVC 用の dll が不足していることが原因のエラーの対処方法を記載します。

検証環境

  • Sitecore CMS 6.6 Serice Pack 1 (MVC 統合が有効)
  • Sitecore Azure 3.0
  • Azure SDK 1.8

1. dllを準備する

ASP.NET MVC 用の dll が不足しているので、dll をSitecore のWebsiteのbinフォルダに格納するようにします。

dllを準備する簡単な方法の1つとして"配置可能な依存関係の追加" 機能を利用するみます。

配置可能な依存関係の追加 機能を使用することで ASP.NET MVC がインストールされていない環境(ホスティングサービスなど)でもASP.NET MVC アプリケーションを動作させることができるようになります。配置可能な依存関係機能を使用すると 必要な dll が ロジェクトのフォルダに格納されます。

早速 dllを準備します。 ASP.NET MVC プロジェクトを作成します。プロジェクトテンプレートに ASP.NET MVC 3 Web アプリケーションを選択してください。

ソリューション エクスプローラー 上で プロジェクトを右クリック → 配置可能な依存関係の追加 を選択します。

下図のような 配置可能な依存関係の追加 ダイアログ が表示されます。 ASP.NET MVC をチェックし OK ボタンをクリックします。

下図のように _bin_deployableAssemblies フォルダが作成され、 MVC アプリケーションを動作させるために必要なdllが配置されます。dllを サイトコアの Website の bin フォルダにコピーします。 ja フォルダは日本語のリソースファイルが格納されているので必要がなければ コピーする必要はありません。

準備完了です。Sitecore Azure の ユーザーインタフェースから Webロールを選択して ファイルの更新 をクリックします。

Webロールをデプロイすると 今度は 本記事冒頭のエラー画面が表示されなくなります。