현재 로깅을 위해 asmx 웹 서비스와 postsharp를 통합하려고합니다.Asmx 웹 서비스를 사용하여 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 클래스에서, 나는 다음과 같은 웹 방식했습니다 동안 : 지점으로 바로 오는
[WebMethod(EnableSession = true)]
[SoapHeader("authentication")]
[LogPerformance]
public DataTable loginUser(string userName, string password)
{
doStuff();
}
:
를- 웹 메소드로 포스트 샤프를 구현할 수 있습니까? 필자의 경우와 마찬가지로 웹 메서드이 수신되면 postSharp 메서드가 호출되지 않습니다. 히트. (예, Nuget 및/또는/plus를 사용하여 postsharp 참조를 추가했습니다. 수동으로 해당 DLL도 추가했습니다.) This 은 언급 된 주제에 대해 단계를 제안하지만 그 중 아무 것도 만들지 못했습니다.
- 웹 API
- ASP.Net 웹 응용 프로그램 (MVC)
- 콘솔 응용 프로그램 :
이 통합 할 때 같은 LogPerformance 클래스가 원활하게 실행하는 것이 중요하다
문제는 .asmx 웹 서비스와 함께 사용할 때입니다. 올바른 방향으로 조금 움직여 주시면 감사하겠습니다.
우선 프로젝트를 빌드 할 때 PostSharp 컴파일러가 실행되도록해야합니다. 프로젝트에 * .csproj 프로젝트 파일이 있어야하며이 프로젝트 파일에는 PostSharp.targets가있는 가져 오기 행이 있어야합니다. 빌드 결과물에 PostSharp에서 적어도 하나의 메시지가 표시되어야합니다. – AlexD
@alexD 답장을 보내 주셔서 감사합니다. 방금 확인한 결과 솔루션에 .csproj 파일이없는 것으로 확인되었습니다. 둘째로 내 빌드 출력에서 나는 게시물의 날카로운 메시지를 보지 못했다. .asmx 서비스에 대한 귀하의 제품 지원을 확인해 주시겠습니까? –
.asmx가 지원되지만 * .csproj 파일이있는 웹 응용 프로그램 프로젝트에서만 지원됩니다. 웹 사이트를 웹 응용 프로그램으로 변환해야하는 경우이 블로그 게시물 (https://blogs.msdn.microsoft.com/)을 참조하십시오. webdev/2009/10/29/conversion-a-web-site-project-to-a-web- 응용 프로그램 프로젝트 /) 변환 후에 PostSharp NuGet 패키지를 프로젝트에 설치해야합니다. – AlexD