2014-12-18 14 views
0

Spring.NET을 사용하여 컨트롤러에 WCF 서비스를 삽입하는 MVC App이 있습니다. 내 구성Spring.NET WCF AOP 성능 로깅

MVC 클라이언트의 Web.config

<wcf:channelFactory id="LoginService" channelType="App.Interfaces.Services.ILoginService, AppServiceInterfaces" endpointConfigurationName="EndPointLoginService"/> 

<endpoint name="EndPointLoginService" address="http://localhost:xxx/LoginService.svc" contract="App.Interfaces.Services.ILoginService" binding="basicHttpBinding" bindingConfiguration="basicHttpBinding1" behaviorConfiguration="ServiceEndpointBehavior" /> 

WCF 서비스의 Web.config

<object id="LoginService" type= "App.Services.LoginService, AppLoginService" singleton="false"> 
</object> 

<service name="LoginService" behaviorConfiguration="ServiceBehavior"> 
    <endpoint address="" binding="basicHttpBinding" bindingConfiguration="basicHttpBinding1" contract="App.Interfaces.Services.ILoginService" /> 
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
    </service> 

로그인 Service.svc

<%@ ServiceHost Language="C#" Debug="true" Service="LoginService" Factory="Spring.ServiceModel.Activation.ServiceHostFactory" %> 
되어 다음

위의 작업은 완벽하게 작동합니다. 지금은 위의

에 대한 성능 로깅을 구현하고 싶었다 그래서 나는 AOP라는 프로젝트를 가지고있는 WCF 서비스의 Web.config

<object id="performanceLoggingAroundAdvice" type="AOP.Advice.PerformanceLoggingAroundAdvice, AOP" singleton="false" scope="request"/> 

에 다음을 추가했다.

<object id="LoginService" type= "App.Services.LoginService, AppLoginService" singleton="false"> 
<property name="InterceptorNames"> 
    <list> 
    <value>performanceLoggingAroundAdvice</value> 
    </list> 
</property> 

그러나 나는 로그인 서비스의 error..saying 초기화 실패 얻을. 누군가가 구성을 도울 수 있습니까?

답변

0

는 내 서비스 계층 구성

<object type="Spring.Aop.Framework.AutoProxy.TypeNameAutoProxyCreator, Spring.Aop"> 
    <property name="TypeNames"> 
    <list> 
    <value>App.Services.LoginService</value> 
    </list> 
</property> 
<property name="InterceptorNames"> 
    <list> 
    <value>performanceLoggingAroundAdvice</value> 
    </list> 
</property> 
</object> 

에 다음을 추가하여 해결하고

<object id="LoginService" type= "App.Services.LoginService, AppLoginService" 
singleton="false"> 
<property name="InterceptorNames"> 
    <list> 
    <value>performanceLoggingAroundAdvice</value> 
    </list> 
</property> 
</objects> 
에서 기존 때에 프로퍼티 인터셉터 속성 설정

<property name="InterceptorNames"> 
    <list> 
    <value>performanceLoggingAroundAdvice</value> 
    </list> 
</property> 

을 제거