Hi Our MVC application uses Unity 1.2 for Dependency Injection. Currently we are performing some load testing and found out every time when we hit certain number of users (i.e 40) the app gets really slow and the processor’s memory usage get
maxed out. We spent a week trying to identify the problem and finally we narrowed down to the code that causes the problem.
Line 1 - unityContainer.Parent.AddNewExtension();
Line 2 - unityContainer.Parent.Configure().SetDefaultInterceptorFor(new InterfaceInterceptor ());
Line 3 - unityContainer.Parent.RegisterType();
Once I remove Line 1 and Line 2 our app performs well and no issues in load testing. We use the default interceptor for ICustomerServiceProxy as the implementation of ICustomerServiceProxy has a method which decorated with a AppCache attribute. For example
public class CustomerServiceProxy: ICustomerServiceProxy
[AppCache(Scope.Application, Expiration = "never")]
public IEnumerable GetAllCustomers(bool forceUpdate)
The AppCache attribute is custom attribute and the imeplementation is....
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Method)]
public class AppCacheAttribute : HandlerAttribute
public override ICallHandler CreateHandler(IUnityContainer ignored)
return new AppCachingCallHandler(GetCacheScope(_cacheScope), Order);
public class AppCachingCallHandler : ICallHandler
public IMethodReturn Invoke(IMethodInvocation input, GetNextHandlerDelegate getNext)
Any ideas greatly appreciated. Please let me know if you need more information.