WCF REST,PerCall,Castle.Core拦截器性能问题

时间:2012-09-05 16:29:32

标签: wcf rest service intercept

我有n层应用程序,其中“WCF REST服务应用程序”位于顶部。出于性能考虑,上下文模式是PerCall,如下所示

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]

我也有一个Intercept(Castle.Core)用于记录目的,方法如下:

实施:

public static readonly ProxyGenerator generator = new ProxyGenerator();

public static T Create<T>(object target, ILog log)
{
    return (T)generator.CreateInterfaceProxyWithTarget(typeof(T), target, new LoggingInterceptor(log));
}

private class LoggingInterceptor : IInterceptor
{
        ...
}

拦截器:

IUserHandler handler = ObjectFactory.Create<IUserHandler>(new UserHandler(), log);

handler.GetUsers();

通过使用拦截器,每个方法调用都有大约0.3个额外的秒,这是非常多的。为什么?!有没有另一种让拦截器工作的方法没有如此巨大的性能开销?!

0 个答案:

没有答案