2013-05-11 2 views
1

내가 웹 API를 MVC 4를 사용하여 간단한 웹 서비스를 만드는 오전을 만들어, 그것은 위해 Application_Start유니티 WebApi 용기는, 내가 내 IOC으로 유니티 웹 API를 사용하고 때마다

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는 한 번만 호출됩니다. –

+0

웹 서비스에 대한 첫 번째 요청에 나는 세고 있지만, 모든 요청을 내가 Bootstrapper.Initialise() 호출을 참조하십시오; –

+0

그 방법을 클릭하고 그것에 대한 모든 참조를 찾으십시오. :) 하나 이상의 참조를 찾을 수 있습니다. –

답변

1

Application_Start은 요청이 아닌 애플리케이션이 시작될 때 한 번만 발생합니다 (아래 참고 사항 참조). 다음 응용 프로그램이 다시 시작하도록 만들 수 있습니다

베어 마음에 ...

  • 스레드 풀은 bin 폴더
  • IIS 재설정

그래서에 새로운 DLL을 삭제

  • 를 다시 시작합니다 응용 프로그램 시작은 "보고있는 동안"발생하여 더 자주 호출되는 것처럼 보였습니다.