0

我有一个 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 创建服务对象,它无法拦截。有没有可能的方法来实现这个日志记录?

4

1 回答 1

0

终于找到答案了。。

对某人有帮助..

通过允许 spring 工厂创建服务对象,可以进行拦截。为此,在服务主机 svc 文件中添加工厂属性,如下所示。

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

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

<modules runAllManagedModulesForAllRequests="true"/>

并添加

<remove name="WebServiceHandlerFactory-Integrated"/>
于 2012-06-07T10:43:22.450 回答