我正在嘗試將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服務。向正確的方向稍微推動,將不勝感激。
首先,您需要確保在構建項目時執行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