0

Sitecore 8.1 MVC 、Castle Windsor、および Glass Mapper v3.5 を使用して 1 つのソリューションを実装しました。このソリューションには 2 つの MVC プロジェクトがありますが、複数の Web サイト (Glass_Sample、Glass_Sample_1 など) が含まれる場合があります。

Glass_Global : このプロジェクトでグローバル/共通機能 (ウィンザー城) が実装され、他の Web サイト ( Glass_Sample ) で使用されているのはそのためです。ウィンザー城の実装をこのプロジェクトに入れました。

ここに画像の説明を入力

Glass_Global.config ファイルを App_Config/Include フォルダー内に配置します。

<pipelines>
      <initialize>
        <processor type="Glass_Global.Pipelines.CastleWindsor.CastleWindsorConfig, Glass_Global" />
        <processor type="Glass_Sample.Pipelines.CastleWindsor.CastleWindsorConfig, Glass_Sample" />
      </initialize>
 </pipelines>

Glass_Sample : これは、このソリューションで開始する最初の Web サイトになります。このプロジェクトに CastleWindsorConfig.cs ファイルを追加しました。

ここに画像の説明を入力

public class CastleWindsorConfig
    {
        public void Process(PipelineArgs args)
        {
            WindsorContainer container = new WindsorContainer();
            container.Install(FromAssembly.This());
            GlobalConfiguration.Configuration.DependencyResolver = new WindsorDependencyResolver(container);
            container.Register(Classes.FromThisAssembly().BasedOn<IController>().LifestyleTransient());
            container.Register(Component.For<ICommon>().ImplementedBy<CommonService>().LifestyleTransient());
            IControllerFactory controllerFactory = new WindsorControllerFactory(container);
            SitecoreControllerFactory scSitecoreControllerFactory = new SitecoreControllerFactory(controllerFactory); 
            System.Web.Mvc.ControllerBuilder.Current.SetControllerFactory(scSitecoreControllerFactory);
        }
    }

この Glass_Sample Web サイトのホームページ レイアウトでコントローラー レンダリングを使用していますが、Web サイトを参照すると次のエラーが発生しました。

ここに画像の説明を入力

何か見逃しましたか?

コントローラー、インターフェイスを Areas フォルダー内に配置しました。それがこのエラーの根本的な原因ですか?

ここに画像の説明を入力

なにか提案を?

PS

現在動作しています。実際に、新しい Glass_Sample.config ファイルを作成し、Glass_Sample/App_Config/Include フォルダー内に配置しました。

<pipelines>
      <initialize>
        <processor type="Glass_Sample.Pipelines.CastleWindsor.CastleWindsorConfig, Glass_Sample" />
      </initialize>
 </pipelines>

現在、このソリューションには複数の Web サイトが含まれている可能性があります。このソリューションに新しい Web サイトを追加するには、次のアプローチに従う必要があります。

  1. このソリューションに新しい MVC プロジェクトを追加し、必要なサイトコア アセンブリを追加します

  2. IIS に移動し、新しいアプリケーション ( GlassSampleSite1 ) を追加して、 GlassSample Web サイト フォルダーからsitecoreフォルダー/dlls をコピーします。

3. ソリューションに移動し、 GlassSampleSite1プロジェクトを右クリックして、公開ターゲットを新しく作成したインスタンスGlassSampleSite1/Websiteフォルダーに設定し、公開します。

これは機能しますか?

4

0 に答える 0