HI,空引用異常項目
我使用PostSharp登錄我的應用程序組件的入口和出口的每一個方法。該組件在GAC中進行了強有力的命名,版本和註冊。
然後,它由2個託管在IIS內獨立虛擬目錄中的Web服務項目共享。當攔截器的OnEntry/OnExit方法被WebServiceProject1調用時,它工作正常,但是當它們被WebServiceProject2調用時,傳遞給攔截器的MethodExecutionEventArgs.Method值似乎爲空,我得到一個NullReferenceException。
如果您重新啓動IIS並以WebServiceProject2,WebServiceProject1的順序調用Web服務項目,那麼再次調用第一個工程,另一個以同樣的方式拋出NullReferenceException。代碼如下所示:
[Serializable]
[Log(AttributeExclude = true)]
[AttributeUsage(AttributeTargets.All)]
public sealed class LogAttribute : OnMethodBoundaryAspect
{
public override void OnEntry(MethodExecutionEventArgs eventArgs)
{
IoC.Resolve<ILogger>().WriteMethodEntry(eventArgs.Method, eventArgs.GetReadOnlyArgumentArray());
}
public override void OnExit(MethodExecutionEventArgs eventArgs)
{
IoC.Resolve<ILogger>().WriteMethodExit(eventArgs.Method, eventArgs.ReturnValue);
}
}
有趣的是,如果我刪除從GAC大會,使web服務項目流失的\ bin子目錄的副本,它工作正常。然而,我不想這樣做,因爲應用程序的另一部分依賴於GAC中的程序集,並且我不希望在不同地方使用許多不同版本的相同DLL。
它與此處描述的問題類似:http://generatedbyatool.net/content/post/2009/07/27/PostSharp-Bug-or-How-To-Recycle-Your-Own-App-Pool.aspx但存在明顯的差異。
任何人有任何想法或建議?我將嘗試構建一個獨立的應用程序來證明這一點。
STOO
我在Postsharp論壇上提出這個問題,附上一個簡單的例子。 http://www.postsharp.org/forum/postsharp-laos/null-reference-exception-methodexecutioneventargs-method-t994.html我會將其添加到跟蹤器。 – 2009-11-12 08:14:58
我已將問題添加到螳螂 - ID0000415。謝謝你的幫助。讓我知道是否有任何事情可以幫助我...... – 2009-11-12 08:19:14