2017-09-05 5 views
1

현재 로깅을 위해 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 웹 서비스와 함께 사용할 때입니다. 올바른 방향으로 조금 움직여 주시면 감사하겠습니다.

+0

우선 프로젝트를 빌드 할 때 PostSharp 컴파일러가 실행되도록해야합니다. 프로젝트에 * .csproj 프로젝트 파일이 있어야하며이 프로젝트 파일에는 PostSharp.targets가있는 가져 오기 행이 있어야합니다. 빌드 결과물에 PostSharp에서 적어도 하나의 메시지가 표시되어야합니다. – AlexD

+0

@alexD 답장을 보내 주셔서 감사합니다. 방금 확인한 결과 솔루션에 .csproj 파일이없는 것으로 확인되었습니다. 둘째로 내 빌드 출력에서 ​​나는 게시물의 날카로운 메시지를 보지 못했다. .asmx 서비스에 대한 귀하의 제품 지원을 확인해 주시겠습니까? –

+0

.asmx가 지원되지만 * .csproj 파일이있는 웹 응용 프로그램 프로젝트에서만 지원됩니다. 웹 사이트를 웹 응용 프로그램으로 변환해야하는 경우이 블로그 게시물 (https://blogs.msdn.microsoft.com/)을 참조하십시오. webdev/2009/10/29/conversion-a-web-site-project-to-a-web- 응용 프로그램 프로젝트 /) 변환 후에 PostSharp NuGet 패키지를 프로젝트에 설치해야합니다. – AlexD

답변

1

* .asmx 웹 서비스는 PostSharp에서 지원됩니다. 그러나 ASP.NET 프로젝트가 웹 사이트 또는 웹 응용 프로그램 (ASP.NET Web Site or ASP.NET Web Application?)인지 여부에주의를 기울여야합니다. 웹 응용 프로그램 프로젝트는 PostSharp에서 지원됩니다. 호환성에 대한 자세한 내용은 Requirements and Compatibility을 참조하십시오.

당신은 블로그 게시물 Converting a Web Site Project to a Web Application Project의 지침을 수행하여 웹 사이트를 프로젝트 프로젝트 웹 응용 프로그램 에 변환 할 수 있습니다. 변환 후에 PostSharp NuGet 패키지를 프로젝트에 설치해야합니다.