2009-08-25 4 views
2

나는 설정 PostSharp을 가지고 ... 그것은 작동하는 것으로 나타납니다하지만 난이 (내가 그것을 작동 할 수 있도록 설정을 기록했다)의 OnExit 입력하지 않는의 OnExit는 asp.net 프로젝트에 PostSharp를 통해 입력되지

asp.net으로 구성하는 것이 조금 까다 롭습니다. 아니면 그냥 나야 ... 1.5 버전을 사용하고 있습니다.

기본적으로 web.config에는 다음과 같은 내용이 있는데, 그렇지 않으면 SearchPath를 추가해야합니다. 내 어셈블리를 찾을 수 없습니다

<postsharp directory="C:\Program Files\PostSharp 1.5" trace="true"> 
    <parameters> 
    <!--<add name="parameter-name" value="parameter-value"/>--> 
    </parameters> 
    <searchPath> 
    <!-- Always add the binary folder to the search path. --> 
    <add name="bin" value="~\bin"/> 
    </searchPath> 

</postsharp> 

내가 추적 기능을 설정했지만 나에게 이상한 점은 무엇입니까? 임시 디렉터리에 구축하는 것, 어쩌면 이것은 내 문제입니다, 나는 확신 할 수 없다 .. 따라서 나는 F5 할 ... 출력 디렉터리 및 출력 파일의 이름을 지정할 수 있습니까 ?? 당신이 볼 수 있듯이 임시 디렉토리에서 DLL을 편집하고 있으므로 IIS는 더 이상 제어 할 수 없으므로 실행하지 않습니다. ???

혼란스러워! :-)


C : \ 프로그램 파일 \ PostSharp 1.5 \ postsharp.exe "/P:Output=C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET 파일 \의 mysitemvc "ASP.NET 프로젝트 \ mysiteemvc-1.2 \ c2087140 \ 8ac2dc93 \ postsharp"/P : CleanIntermediate = False/P : ReferenceDirectory =./P : SignAssembly = False/P : PrivateKeyLocation =/P : ResolvedReferences = "/ P : SearchPath = C : \ 소스 코드 \ Visual Studio 2008 \ Projects \ mysitemvc \ mysitemvc \ bin,"/ V/SkipAutoUpdate "C : \ Program Files \ PostSharp 1.5 \ Default.psproj ""C : \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ 임시 ASP.NET 파일 \ mysitemvc-1.2 \ c2087140 \ 8ac2dc93 \ before-postsharp \ App_Web_04ae3ewy.dll "

포스트 샤프 1.5 [1.5.6.627] - Copyright (c) Gael Fraiteur, 2005-2009.

정보 PS0035 : C : \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ ilasm.exe "C : \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files \ mysitemvc-1.2 \ Q20ET \ DLL \ PDB "/RESOURCE=C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files \ mysitemvc-1.2 \ c2087140 \ 8ac2dc93 \ c2087140 \ 8ac2dc93 \ postsharp \ App_Web_04ae3ewy.il" postscarp \ App_Web_04ae3ewy.res ""/OUTPUT=C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET 파일 \ mysiteemvc-1.2 \ c2087140 \ 8ac2dc93 \ postsharp \ App_Web_04ae3ewy.dll "/ SUBSYSTEM = 3/FLAGS = 1/BASE = 18481152/STACK = 1048576/ALIGNMENT = 512 /MDV=v2.0.50727

답변

1

PostSharp.AspNet은 IAssemblyPostProcessor를 구현합니다. 경로가 ASP.NET에 전달됩니다. PostSharp가 ASP.NET에서 전달 된이 디렉토리에 temp 하위 디렉토리를 만들고 그 출력을 거기에 쓴 다음 출력을 입력에 다시 복사합니다.

이 메커니즘을 변경할 방법이 없습니다. 어쨌든 이유가 표시되지 않습니다.

-gael

+0

확인 ermm ... 난 .... 그것을 다시 복사 한 실현되지 않았다 그래서의 OnExit, OnException, OnEntry 실행되지 않습니다 ... 내가 더 많은 정보를 제공 할 수 있습니다 이유 anyidea ? –

+0

잘 모르겠 음. aspnet_compiler를 사용하여 컴파일을 시도한 다음 Reflector를 사용하여 결과를 볼 수 있습니다. –

+0

안녕하세요 .. 저는 반사경을 확인했고 클래스에 대한 Loggable 속성을 확인했습니다. 그리고 loggable을 정의하는 실제 클래스를 봅니다. 그렇다면이 증거가 작동하는 것입니까? [직렬화] 공용 클래스 LoggableAttribute : OnMethodBoundaryAspect {// 메소드 공개 LoggableAttribute(); public override void OnEntry (MethodExecutionEventArgs event_args); public override void OnException (MethodExecutionEventArgs event_args); public override void OnExit (MethodExecutionEventArgs event_args); –

관련 문제