XamlParseException和NoServiceException

时间:2016-02-16 06:51:47

标签: c# wpf

我的程序在我当前的笔记本电脑上运行没有任何问题(x64)。但是当我尝试在另一台PC(x86)上运行它时,它会在启动之前崩溃。我也尝试更改platformtarget,如下面的答案中所述: XMLParseException occurs

我还抓住了所有未处理的异常。这给了我两个例外:

enter image description here

我也从可靠性历史中得到了这个:

  

错误应用程序名称:LoginDemo.exe,版本:1.0.0.0,时间   标记:0x56c19003错误模块名称:KERNELBASE.dll,版本:   6.1.7601.17651,时间戳:0x4e2111c0异常代码:0xe0434352故障偏移量:0x0000d36f故障进程id:0x4b0故障   应用程序启动时间:0x01d167cd96535e01错误应用程序路径:   C:\ Users \用户hgservice \桌面\ TEMP \ LoginTool2 \ LoginDemo \ BIN \发布\ LoginDemo.exe   错误模块路径:C:\ Windows \ system32 \ KERNELBASE.dll报告ID:   d6435b26-d3c0-11e5-b9a7-001999d6cbe5

我还读到问题可能发生,因为程序在运行时尝试导入DLL,但我需要的所有DLL都在同一个文件夹中。就像我在笔记本电脑上说的那样,工作正常。有谁知道问题可能是什么?

2 个答案:

答案 0 :(得分:1)

这个问题与WPF没有任何共同之处。如果我们分析堆栈跟踪,我们可以看到它被pcsc-sharp库抛出。更仔细的分析将显示抛出NoServiceException异常,因为以下本机方法返回错误:

[DllImport(WINSCARD_DLL, CharSet = CharSet.Auto)]
private static extern int SCardEstablishContext(...)

更精确地NoServiceException映射到SCARD_E_NO_SERVICE (0x8010001D)错误。这意味着笔记本电脑上的SmartCard服务可能没有运行。要修复它:按Win + R,键入 services.msc 并启动SmartCard服务。

此问题也可能是由各种版本的Windows之间的差异引起的(有关详细信息,请参阅此question)。

此问题的另一个原因可能是缺少足够的权限(请参阅this文章)。

答案 1 :(得分:0)

好的,我修好了。正如MichałKomorowski和Jon Skeet已经回答的那样,问题是Smard Card服务没有运行。 MichałKomorowski的答案几乎是正确的。我唯一要做的就是在“手动”上设置启动类型。之后我可以启动智能卡服务,现在一切正常。

enter image description here