Sitecore 8.1 MVC Castle Winsdor проблема в нескольких проектах MVC
Я реализовал одно решение, используя Sitecore 8.1 MVC, Castle Windsor и glass mapper v3.5. В этом решении у нас есть два проекта MVC, но он может содержать несколько веб-сайтов (Glass_Sample, Glass_Sample_1 и т. Д.)
Glass_Global: Вот почему глобальная / общая функциональность (замок виндзор) реализована в этом проекте и используется другим веб-сайтом (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: это будет первый веб-сайт в этом решении для запуска. Я добавил файл 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, но при просмотре веб-сайта я получил следующую ошибку:
Я что-то пропустил?
Я поместил свой Контроллер, Интерфейс в папку Области, Это - основная причина этой ошибки?
Любое предложение?
PS
Теперь он работает. На самом деле я создал новый файл Glass_Sample.config и поместил его в папку Glass_Sample/App_Config/Include:
<pipelines>
<initialize>
<processor type="Glass_Sample.Pipelines.CastleWindsor.CastleWindsorConfig, Glass_Sample" />
</initialize>
</pipelines>
Теперь это решение может содержать несколько веб-сайтов. Следует добавить следующий подход для добавления нового веб-сайта в это решение:
Добавит новый проект MVC в это решение и добавит необходимые сборки sitecore
перейдите в IIS, добавьте новое приложение (GlassSampleSite1) и скопируйте папку sitecore / dlls из папки сайта GlassSample
3. Перейдите к решению, щелкните правой кнопкой мыши проект GlassSampleSite1, установите цель публикации для вновь созданной папки экземпляра GlassSampleSite1/Website и выполните публикацию.
Будет ли это работать?