У меня есть ASP. NET MVC приложение API, и я использую Castle Windsor Io c, я использую ApiController для операций CRUD и использую Controller для экспорта в Excel, я успешно регистрирую ApiController, но когда я хочу export Excel return error «Требуемый ресурс удален, имя изменено или временно недоступен». Я проверяю компонент регистра замка и вижу ExcelController. Спасибо за любые советы.
Фабрика контроллеров:
public class WindsorControllerFactory : DefaultControllerFactory
{
private readonly IWindsorContainer _container;
public static readonly Logger Logger = LogManager.GetCurrentClassLogger();
public WindsorControllerFactory(IWindsorContainer container)
{
_container = container;
}
protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType)
{
try
{
if (_container.Kernel.HasComponent(controllerType))
{
return (IController)_container.Resolve(controllerType);
}
return base.GetControllerInstance(requestContext, controllerType);
}
catch (Exception ex)
{
Logger.Error(ex.Message);
throw new Exception("Not Found");
}
}
public override void ReleaseController(IController controller)
{
//ServiceLocator.Current.Release(controller);
base.ReleaseController(controller);
}
}
Global.asax.cs:
public class WebApiApplication : HttpApplication
{
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
protected void Application_Start()
{
GlobalConfiguration.Configure(WebApiConfig.Register);
var container = BootstrapContainer.WireUp();
ControllerBuilder.Current.SetControllerFactory(new WindsorControllerFactory(container));
GlobalConfiguration
.Configuration
.Services
.Replace(typeof(IHttpControllerActivator)
, new CastleApiControllerActivator(container));
}
protected void Application_Error()
{
var ex = Server.GetLastError();
Logger.Error(ex);
}
protected void Application_End()
{
var ex = Server.GetLastError();
Logger.Error(ex);
}
}