2009-08-25 46 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:\ Program Files文件\ PostSharp 1.5 \ postsharp.exe「/P:Output=C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET文件\ mysitemvc -1.2 \ c2087140 \ 8ac2dc93 \ postsharp \ App_Web_04ae3ewy.dll「」/P:IntermediateDirectory=C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files \ mysitemvc-1.2 \ c2087140 \ 8ac2dc93 \ postsharp「/P:CleanIntermediate = False/P:ReferenceDirectory =。/P:SignAssembly = False/P:PrivateKeyLocation =/P:ResolvedReferences =「/ P:SearchPath = C:\ Source Code \ 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 \ Temporary ASP.NET Files \ mysitemvc-1.2 \ c2087140 \ 8ac2dc93 \ before-postsharp \ App_Web_04ae3ewy.dll「

PostSharp 1.5 [1.5.6.627] - Copyright(c)Gael Fraiteur,2005-2009。

info 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 \ c2087140 \ 8ac2dc93 \ postsharp \ App_Web_04ae3ewy.il「/ QUIET/DLL/PDB」/RESOURCE=C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files \ mysitemvc-1.2 \ c2087140 \ 8ac2dc93 \ postsharp \ App_Web_04ae3ewy.res「」/OUTPUT=C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files \ mysitemvc-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傳遞的這個目錄中創建了一個臨時子目錄,將其輸出寫入那裏,然後將輸出複製回輸入。

沒有辦法改變這種機制(而且我也沒有看到任何理由)。

-gael

+0

ermm好吧...我沒有意識到這是複製回....所以anyidea爲什麼的OnExit,onException的,OnEntry不執行...... 我可以爲您提供更多信息? – 2009-08-25 12:17:02

+0

不知道。您可以嘗試使用aspnet_compiler進行編譯,然後使用Reflector查看結果。 – 2009-08-25 12:18:35

+0

嗨..以及我已經檢查反射器,我看到我的Loggable屬性在類..我看到我的實際類定義loggable ..就像這樣,這樣的證明它的工作? [序列化] 公共類LoggableAttribute:OnMethodBoundaryAspect { //方法 公共LoggableAttribute();公共覆蓋無效OnEntry(MethodExecutionEventArgs event_args); public override void OnException(MethodExecutionEventArgs event_args); public override void OnExit(MethodExecutionEventArgs event_args); – 2009-08-25 12:56:34

相關問題