我有一个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创建服务对象,它无法拦截。有没有办法为此实现日志记录?
答案 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"/>