내가Autofac WCF는 - CloseChannel은 부하 테스트
응용 프로그램은 타사 WCF 서비스 호출을 (요청/초 100의) 부하가 크게 둔화되는 webapi 응용 프로그램을 프로파일 링하고 아래에 여러 번했다. 내가 dottrace를 사용하고있어
는 Autofac.Integration.Wcf.RegistrationExtensions.CloseChannel(T)
이 DotTrace은 핫스팟으로이 문제를 확인했습니다
(1 분 100 클라이언트/초) 내 시험 중에> 22K 번 호출되는 것을 알 수 있습니다.
나는 Autofac WCF 통합 문서에 따라 내 WCF 등록 :
var bookingManagerFactory = new ChannelFactory<IBookingManager>("IBookingManager");
builder.Register(c => bookingManagerFactory).SingleInstance();
builder.Register(c => c.Resolve<ChannelFactory<IBookingManager>>().CreateChannel()).UseWcfSafeRelease();
이 동작이 예상되어 있습니까? 응용 프로그램 간
, 그것은InstancePerDependency
기본 수명 것을 나의 이해의
IBookingManager
에 따라 많은 종류가 있습니다 - 내 시나리오에서 그 적합은? .InstancePerRequest()를 CreateChannel() 메서드에 더 적용 할 수 있습니까?)
게으른를 전달하는 것이 같을까요? –
Alex
하나의 인스턴스에 대해서만 지연 지연 해결. 당신이 오직 하나만 필요로하고 단 하나의 전화를 걸면 (또는 내결함성이 필요하지 않다면) 게으른 것이 좋습니다. 그러나 Func을 사용하는 것만 큼 쉽고 더 유연합니다. 나는 당신의 상황에 대해 Faz over Lazy를 강력히 추천한다. –
Func을 전달하면 BeginInvoke를 사용해야합니까? 호출? –
Alex