什么是Win32错误0n2,为什么它阻止我的应用程序运行?

时间:2012-03-08 19:11:40

标签: .net debugging windows-services structuremap

我有一个用C#/ .NET编写的Windows服务,编译到AnyCPU,在尝试初始化StructureMap时显然在启动时死掉。我已经使用Debug Diagnostics v1.2从内存转储中获取以下堆栈跟踪:

System.RuntimeTypeHandle.CreateInstance(System.RuntimeType, Boolean, Boolean, Boolean ByRef, System.RuntimeMethodHandleInternal ByRef, Boolean ByRef) 
System.RuntimeType.CreateInstanceSlow(Boolean, Boolean, Boolean)Unable to load image C:\Windows\assembly\NativeImages_v4.0.30319_64\mscorlib\b10e2a4a87b27f241113ead9433e25da\mscorlib.ni.dll, Win32 error 0n2 
System.RuntimeType.CreateInstanceDefaultCtor(Boolean, Boolean, Boolean, Boolean) 
System.Activator.CreateInstance[[System.__Canon, mscorlib]]() 
StructureMap.ConfigurationExpression.AddRegistry[[System.__Canon, mscorlib]]()*** ERROR: Module load completed but symbols could not be loaded for StructureMap.dll 
StructureMap.ObjectFactory.Initialize(System.Action`1) 

第二行实际上是我感兴趣的。该文件存在于我的机器上。我应该在哪里查看如何调试此服务并使其运行?

对于它的价值,我有一个单元测试,验证StructureMap配置是否正确,并成功通过。

1 个答案:

答案 0 :(得分:2)

Win32错误0x2是“找不到文件”。使用Fuslogvw.exe收集融合错误。从融合日志中你应该能够找出未找到哪个程序集以及加载程序在放弃之前搜索它的位置。请记住,Windows服务始终在System32目录中启动...

(复制Seva Titov的评论)