我收到了一份关于WPF应用程序的错误报告,该应用程序无法在Windows Server 2008 Service pack 2服务器中启动(该应用程序是我们分发给客户的管理工具(。由于这个应用程序有很多外部引用,我试图通过使用Visual Studio 2013创建一个简单的WPF应用程序来简化这个问题:一个纯白色窗口,显示"你好世界",仅此而已。我试着让它在生产服务器上运行,但没有成功:它总是立即崩溃。
这是我的:
- 应用程序是用WPF的标准VS2013模板创建的,因此它有3.5作为目标框架;我把它改成了4.6
- 服务器安装了3.5 SP1和4.6版本的.net框架
- app.config格式良好,顶部有
configSections
部分,除了根据目标框架版本设置的log4net、supportedRuntime
标记之外,没有其他引用 - 我已经检查了项目中是否没有3.5版本的项目引用
- 我已经尝试登录
DispatcherUnhandledException
和AppDomain.UnhandledException
处理程序 - 应用程序在我的开发环境中运行
- 只有当我将目标框架更改为3.5时,应用程序才会在生产环境中运行。在这种情况下,将显示WPF窗口,并正确生成日志文件
- 我已经尝试过生成一个转储并尝试在Visual Studio中调试它:我只收到一条"Source not available"消息和一个以ntdll.dll结尾的堆栈跟踪!NtWaitForSingleObject((
以下是错误详细信息:
描述:
停止工作
问题签名:
问题事件名称:APPCRASH
应用程序名称:MyApp.exe
应用程序版本:1.0.0.0
应用程序时间戳:5bfc07f1
故障模块名称:KERNEL32.dll
故障模块版本:6.0.6002.24367
故障模块时间戳:5ae3dcd9
异常代码:e0434352
异常偏移:00000000000 1667d
操作系统版本:6.0.6002.2.2.0.272.7
区域设置ID:1033
Windows事件日志显示的信息很少:
出现故障的应用程序MyApp.exe,版本1.0.0.0,时间戳0x5bfc07f1,出现故障的模块KERNEL32.dll,版本6.0.6002.24367,时间戳0x%5ae3dcd9,异常代码0xe043352,故障偏移量0x000000000001667d,进程id 0x%9,应用程序启动时间0x%10。
应用程序:MyApp.exe
框架版本:v4.0.30319
描述:由于出现未处理的异常,进程已终止。
异常信息:异常代码e043352,异常地址00000000 77A6667D
堆栈:[这是空的]
有什么建议吗?
为了防止其他人遇到同样的问题,微软的KB4457921更新似乎以某种方式解决了这个问题。如果无法进行更新,请考虑将代码移植回.net framework v.3.5。