如何使用ASP.Net中的Spring AOP记录RESTful服务

时间:2012-06-05 09:52:45

标签: asp.net spring rest logging aop

我有一个Restful服务,它在传递产品代码时返回产品信息。 界面看起来像

 [OperationContract]
    [WebInvoke(UriTemplate = "Product/{ProductCode}", Method = "GET", BodyStyle = WebMessageBodyStyle.Bare, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
    Product GetProductInformation(String ProductCode);

我通过输入URI从浏览器访问该服务。

我正在通过Spring AOP实现日志。如何使用Spring AOP拦截方法。我尝试过使用NameMatchMethodPointcutAdvisor,但我没有在访问服务之前使用spring创建服务对象,它无法拦截。有没有办法为此实现日志记录?

1 个答案:

答案 0 :(得分:0)

最后我找到了答案..

对某人有帮助..

通过允许spring工厂创建服务对象,可以进行拦截。为此在服务主机svc文件中添加像这样的Factory属性。

<%@ ServiceHost Language="C#" Debug="true" Service="Servicename" Factory="Spring.ServiceModel.Activation.ServiceHostFactory" %>

为了防止.net在handlers中的<system.webServer>部分下的web.config文件中创建服务对象,请删除以下内容

<modules runAllManagedModulesForAllRequests="true"/>

并添加

<remove name="WebServiceHandlerFactory-Integrated"/>