我的应用程序 WPF C#.NET 3.5 VS2008 在一台客户机器上遇到了一些问题。我的 App 在不同的 Windows 机器(XP、Vista 32/64、Win7 32/64)上安装了近 1000 次,到目前为止没有问题。
Win7 32 PC 上似乎只有一个有问题。
取决于当前活动的任务管理器概述:
1 - 活动:程序已启动
http://i.stack.imgur.com/jA6j7.gif(见图)
2 - 活动:简单点击菜单项、按钮等
http://i.stack.imgur.com/e0erH.gif(见图)
对象 USER和对象 GDI运行到 10'000 并且应用程序抛出以下异常:
System.ComponentModel.Win32Exception The current process has used all of its system allowance of handles for Window Manager objects
à MS.Win32.UnsafeNativeMethods.CreateWindowEx(Int32 dwExStyle, String lpszClassName, String lpszWindowName, Int32 style, Int32 x, Int32 y, Int32 width, Int32 height, HandleRef hWndParent, HandleRef hMenu, HandleRef hInst, Object pvParam)
à MS.Win32.HwndWrapper..ctor(Int32 classStyle, Int32 style, Int32 exStyle, Int32 x, Int32 y, Int32 width, Int32 height, String name, IntPtr parent, HwndWrapperHook[] hooks)
à System.Windows.Interop.HwndSource.Initialize(HwndSourceParameters parameters)
à System.Windows.Interop.HwndSource..ctor(HwndSourceParameters parameters)
à System.Windows.Window.SetTaskbarStatus()
à System.Windows.Window.CreateAllStyle()
à System.Windows.Window.CreateSourceWindowImpl()
à System.Windows.Window.SafeCreateWindow()
à System.Windows.Window.ShowHelper(Object booleanBox)
à System.Windows.Window.Show()
à System.Windows.Window.ShowDialog()
à WPFControls.WPFMessageBox.Show(String title, String message, String details, WPFMessageBoxButtons buttonOption, WPFMessageBoxImage image)
à MyApp.Prolog.Application_DispatcherUnhandledException(Object sender, DispatcherUnhandledExceptionEventArgs e)
à System.Windows.Threading.Dispatcher.CatchException(Exception e)
à System.Windows.Threading.Dispatcher.CatchExceptionStatic(Object source, Exception e)
à System.Windows.Threading.ExceptionWrapper.CatchException(Object source, Exception e, Delegate catchHandler)
à System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
à System.Windows.Threading.Dispatcher.WrappedInvoke(Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
à System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Boolean isSingleParameter)
à System.Windows.Threading.Dispatcher.Invoke(DispatcherPriority priority, Delegate method, Object arg)
à MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
à MS.Win32.UnsafeNativeMethods.SetWindowPos(HandleRef hWnd, HandleRef hWndInsertAfter, Int32 x, Int32 y, Int32 cx, Int32 cy, Int32 flags)
à System.Windows.Window.SetupInitialState(Double requestedTop, Double requestedLeft, Double requestedWidth, Double requestedHeight)
à System.Windows.Window.CreateSourceWindowImpl()
à System.Windows.Window.SafeCreateWindow()
à System.Windows.Window.ShowHelper(Object booleanBox)
à System.Windows.Window.Show()
à System.Windows.Window.ShowDialog()
à WPFControls.WPFMessageBox.Show(String title, String message, String details, WPFMessageBoxButtons buttonOption, WPFMessageBoxImage image)
à MyApp.Prolog.Application_DispatcherUnhandledException(Object sender, DispatcherUnhandledExceptionEventArgs e)
à System.Windows.Threading.Dispatcher.CatchException(Exception e)
à System.Windows.Threading.Dispatcher.CatchExceptionStatic(Object source, Exception e)
à System.Windows.Threading.ExceptionWrapper.CatchException(Object source, Exception e, Delegate catchHandler)
à System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
à System.Windows.Threading.Dispatcher.WrappedInvoke(Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
à System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Boolean isSingleParameter)
à System.Windows.Threading.Dispatcher.Invoke(DispatcherPriority priority, Delegate method, Object arg)
à MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
à MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
à System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
à System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
à System.Windows.Window.ShowHelper(Object booleanBox)
à System.Windows.Window.Show()
à System.Windows.Window.ShowDialog()
à MyApp.Prolog.Prolog_Startup(Object sender, StartupEventArgs e) 0 0 0
请问有人可以帮忙吗?
更新 - 编辑
我们的客户确实设置了一个新的干净(如他所说)Win 7 64 OS,但问题仍然存在。使用 WPF 应用程序似乎无法正常工作。
我还尝试在客户机器上使用 John Smith 的这篇文章 (msdn.microsoft.com/de-de/magazine/dd419663.aspx) 的 MVVM 演示应用程序。
当我尝试单击菜单项、按钮或在下拉列表中选择某些内容时,MVVM 演示应用程序也会崩溃。在文本字段中输入文本是可以的,但单击并选择确实会停止 MVVM 演示应用程序,并显示应用程序无法运行的错误。
这是我的应用程序的事件日志
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
- <System>
<Provider Name="Application Error" />
<EventID Qualifiers="0">1000</EventID>
<Level>2</Level>
<Task>100</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2013-02-07T11:04:13.000000000Z" />
<EventRecordID>2243</EventRecordID>
<Channel>Application</Channel>
<Computer>RSSec.Machine.local</Computer>
<Security />
</System>
- <EventData>
<Data>MyApp.exe</Data>
<Data>2.0.16.0</Data>
<Data>51136bd8</Data>
<Data>unknown</Data>
<Data>0.0.0.0</Data>
<Data>00000000</Data>
<Data>c000041d</Data>
<Data>74494f0d</Data>
<Data>ecc</Data>
<Data>01ce0522d9d3bc67</Data>
<Data>C:\Program Files (x86)\MyApp\MyApp.exe</Data>
<Data>unknown</Data>
<Data>1ad6d91f-7116-11e2-87c7-10604b689bfe</Data>
</EventData>
</Event>
有人可以再帮忙吗?谢谢