1

我有一个在 Windows Xp 和 Windows 7 上正确运行的 WPF 应用程序。当我在 Windows 服务器 2012 上安装它时,我意识到处理 AutomationPeers 时发生错误。这是堆栈跟踪的一部分:

...在 System.Windows.Automation.Peers.AutomationPeer.EnsureChildren() 在 System.Windows.Automation.Peers.AutomationPeer.UpdateChildrenInternal(Int32 invalidateLimit) 在 System.Windows.Automation.Peers.AutomationPeer.UpdateSubtree() 在系统。 Windows.Automation.Peers.AutomationPeer.UpdatePeer(Object arg) 在 System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) 在 MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method,对象 args、Int32 numArgs、委托 catchHandler)

我查看了引发该异常的控件的源代码,我意识到这部分代码只有在调用静态方法时才能运行:

`AutomationPeer.ListenerExists()`

返回真。

为什么在所有其他系统上,调用

`AutomationPeer.ListenerExists()`

全部返回false,而在该Windows 2012服务器上它返回true?

有没有办法删除这些听众?

注意:我的应用程序是在发布模式下构建的。

4

0 回答 0