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 サイトを追加するには、次のアプローチに従う必要があります。
このソリューションに新しい MVC プロジェクトを追加し、必要なサイトコア アセンブリを追加します
IIS に移動し、新しいアプリケーション ( GlassSampleSite1 ) を追加して、 GlassSample Web サイト フォルダーからsitecoreフォルダー/dlls をコピーします。
3. ソリューションに移動し、 GlassSampleSite1プロジェクトを右クリックして、公開ターゲットを新しく作成したインスタンスGlassSampleSite1/Websiteフォルダーに設定し、公開します。
これは機能しますか?