2013-05-11 3 views
1

я создаю простой веб-сервис, с помощью веб-апи MVC 4, я использую Unity Web API, как мой МОК, как всегда в документации сказано, чтобы добавить его к Application_StartUnity WebAPI контейнер создается каждый раз, когда

protected void Application_Start() 
    { 
     AreaRegistration.RegisterAllAreas(); 

     Bootstrapper.Initialise(); 

     WebApiConfig.Register(GlobalConfiguration.Configuration); 
     FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 
     RouteConfig.RegisterRoutes(RouteTable.Routes); 
     BundleConfig.RegisterBundles(BundleTable.Bundles); 
    } 

, что означает, что для каждого запроса он создается

public static void Initialise() 
    { 
     _container = BuildUnityContainer(); 

     GlobalConfiguration.Configuration.DependencyResolver = new Unity.WebApi.UnityDependencyResolver(_container); 
    } 

    private static IUnityContainer BuildUnityContainer() 
    { 
     _container = new UnityContainer(); 
     // register all your components with the container here 

     LoggingUtilities.LoadConfigFile("ThirdParty.log4net"); 
     ILog log = LoggingUtilities.DefaultLogger; 
     _container.RegisterInstance<ILog>(log); 

     log.InfoFormat("In BuildUnityContainer"); 
     OpClientWrapper wrapper = new OpClientWrapper(log); 

     _container.RegisterInstance<OpClientWrapper>(wrapper, new ContainerControlledLifetimeManager()); 

     return _container; 
    } 

я хочу, чтобы мой Opclient обертка будет создан только один раз для всех запросов, возможно ли это?

+0

Application_Start вызывается только один раз. При первом запросе на webservice –

+0

, на который я рассчитывал, но каждый запрос я вижу вызов Bootstrapper.Initialise(); –

+0

Нажмите на этот метод и найдите все ссылки для него. :) вы можете найти несколько ссылок. –

ответ

1

Application_Start только огонь один раз (см. Примечания ниже), когда приложение запускается - не по запросу.

Имейте в виду, что нижеследующее может вызвать приложение для перезагрузки ...

  • бассейн Thread перезапускает
  • капают новые библиотеки DLL в папку бен
  • IIS сбросов

Так возможно, начало приложения было вызвано «пока вы смотрели», что заставило его выглядеть так, как будто его вызывали чаще.

Смежные вопросы