使用Asmx Web服务实现PostSharp
问题描述:
我正在尝试将loggingharp与asmx Web服务集成以实现日志记录异常。使用Asmx Web服务实现PostSharp
这里是我的看点透视代码:
[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类,我下面的Web方法:
[WebMethod(EnableSession = true)]
[SoapHeader("authentication")]
[LogPerformance]
public DataTable loginUser(string userName, string password)
{
doStuff();
}
即将开门见山:
- postsharp是否支持Web方法的实现?正如我的情况下, postSharp方法不会被调用时接收 一击的Web方法。 (是的,我一直在使用的NuGet添加postsharp参考和/或/加手动添加它的dll以及)This确实 建议对所提到的主题了一步,但我不能做任何事情 出来。
- 的Web API
- ASP.Net Web应用程序(MVC)
- 控制台应用程序 :
需要注意的是,当与集成在同一LOGPERFORMANCE类运行平稳是非常重要的
问题是当我使用.asmx web服务。向正确的方向稍微推动,将不胜感激。
答
的*的.asmx Web的服务是由PostSharp支持。然而,你需要注意你的ASP.NET项目是否是一个网站或Web应用程序(ASP.NET Web Site or ASP.NET Web Application?)。只有Web应用程序项目受PostSharp支持。有关兼容性的更多信息,您还可以检查Requirements and Compatibility。
您可以通过以下从博客文章Converting a Web Site Project to a Web Application Project准则转换您网站项目Web应用程序项目。转换后,您需要将PostSharp NuGet软件包安装到您的项目中。
首先,您需要确保在构建项目时执行PostSharp编译器。您的项目必须具有* .csproj项目文件,并且此项目文件必须包含带有PostSharp.targets的导入行。在您的编译输出中,您应该至少看到一条来自PostSharp的消息。 – AlexD
@alexD感谢您的回复,我刚刚检查并验证我的解决方案没有.csproj文件。其次,在我的构建输出中,我没有看到任何来自帖子尖锐的消息。您能否确认您的产品对.asmx服务的支持? –
.asmx受支持,但仅限于具有* .csproj文件的Web应用程序项目。您需要将您的网站转换为Web应用程序,请在此博客文章(https://blogs.msdn.microsoft.com/ Webdev的/ 2009/10 /第29 /转换-A-的网站项目到一个的Web应用程序项目/)。转换后,您需要将PostSharp NuGet软件包安装到您的项目中。 – AlexD