我目前正在尝试将postsharp与我的asmx Web服务集成,以便记录异常。
这是我的Aspect视角代码:
[Serializable]
public class LogPerformance : OnMethodBoundaryAspect
{
public override void OnEntry(MethodExecutionArgs args)
{
string test = "test";
base.OnEntry(args);
}
public override void OnExit(MethodExecutionArgs args)
{
string test = "test";
base.OnExit(args);
}
public override void OnException(MethodExecutionArgs args)
{
string test = "test";
base.OnException(args);
}
}
在我的Service.cs课程中,我使用了以下网络方法:
[WebMethod(EnableSession = true)]
[SoapHeader("authentication")]
[LogPerformance]
public DataTable loginUser(string userName, string password)
{
doStuff();
}
直截了当地说:
重要的是要注意,当与集成时, LogPerformance 类可以顺利运行:
问题是当我将它与.asmx web服务一起使用时。向正确的方向稍微推动将不胜感激。
答案 0 :(得分:1)
PostSharp支持* .asmx网络服务。但是,您需要注意ASP.NET项目是 Web站点还是 Web应用程序(ASP.NET Web Site or ASP.NET Web Application?)。 PostSharp仅支持 Web应用程序项目。有关兼容性的更多信息,您还可以查看Requirements and Compatibility。
您可以按照博文Converting a Web Site Project to a Web Application Project中的指南将网站项目转换为 Web应用程序项目。转换后,您需要将PostSharp NuGet包安装到您的项目中。