Я использую sitecore v9
У меня есть два базовых класса для всех моих контроллеров следующим образом
public abstract SiteCoreController : ControllerBase, IController, IActionFilter, IAuthenticationFilter, IAuthorizationFilter, IDisposable, IExceptionFilter, IResultFilter, IAsyncController, IAsyncManagerContainer
public abstract class ControllerBase : IController
все контроллеры используют что-то вроде
public class MyPageController : SiteCoreController
In мои файлы журналов я получаю кучу ошибок
Sitecore. Mvc .Diagnostics.ControllerCreationException: Не удалось создать контроллер: Элемент контекста: '/ sitecore / content / TEST / home'. URL текущего маршрута: '{* pathInfo}'. Это маршрут Sitecore по умолчанию, который устанавливается в процессоре InitializeRoutes конвейера инициализации. ---> Sitecore. Mvc .Diagnostics.ExceptionWrapper: Контроллер для пути '/' не найден или не реализует IController. в System.Web. Mvc .DefaultControllerFactory.GetControllerInstance (RequestContext requestContext, Тип controllerType) в System.Web. Mvc .DefaultControllerFactory.CreateController (RequestContext requestContext, String controllerName * 10CrollerCoreCoreCoreler.CoreCoreler.CoreCoreler.CoreCoreler.CoreCoreler.CoreCoreler.CoreCoreler.CoreCoreler.CoreCorelerCoreCorelerCoreCorelerCoreCorelerCoreCorelerCoreCorelerCoreCorelerCoreCorelerCoreCorelerCoreCore.dll)))). (RequestContext requestContext, String controllerName) --- Конец внутренней трассировки стека исключений --- в Sitecore. Mvc .Controllers.SitecoreControllerFactory.CreateController (RequestContext requestContext, String controllerName) в Sitecore. Mvc .Controllers.ControllerRunner. () в Sitecore. Mvc .Controllers.ControllerRunner.Execute () в Sitecore. Mvc .Pipelines.Request.RequestBegin.ExecuteFormHandler.ExecuteHandler (String controllerName, String actionName, RequestBeginArgs args) в объекте (объект, аргументы []]) в Sitecore.Pipelines.CorePipeline.Run (Аргументы PipelineArgs) в Sitecore.Pipelines.DefaultCorePipelineManager.Run (Строковое значение pipeName, Аргументы PipelineArgs, Строковое значение pipeDom ain) в Sitecore. Mvc .Pipelines.PipelineService.RunPipeline [TArgs] (String pipelineName, TArgs args) в Sitecore. Mvc .Routing.RouteHttpHandler.BeginProcessRequest (контекст HttpContext, объект AsyncCallback в объекте cb, Cb объекта AsyncCallback) .HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute () на System.Web.HttpApplication.ExecuteStepImpl (шаг IExecutionStep) на System.Web.Http * приложение2 1014 * Мой DI настроен следующим образом
public static void SetupControllers(this IServiceCollection serviceCollection, params Assembly[] assemblyArray)
{
var controllers = GetTypesImplementing<IController>(assemblyArray)
.Where(controller => controller.Name.EndsWith("Controller", StringComparison.Ordinal));
foreach (var x in controllers)
{
serviceCollection.AddTransient(x);
}
var apis = GetTypesImplementing<ApiController>(assemblyArray)
.Where(controller => controller.Name.EndsWith("Controller", StringComparison.Ordinal));
foreach (var x in apis)
{
serviceCollection.AddTransient(x);
}
}