2016-02-16 2 views
1

Моя программа работает без проблем на моем текущем ноутбуке (x64). Но когда я пытаюсь запустить его на другом ПК (x86), он сработает перед запуском. Я также попытался изменить платформу platformtarget, как описано в этом ответе: XMLParseException occursXamlParseException и NoServiceException

Я также выбрал все необработанные исключения. Это доставляет мне два исключения:

enter image description here

Я также получил, что из истории надежности:

Faulting application name: LoginDemo.exe, version: 1.0.0.0, time stamp: 0x56c19003 Faulting module name: KERNELBASE.dll, version: 6.1.7601.17651, time stamp: 0x4e2111c0 Exception code: 0xe0434352 Fault offset: 0x0000d36f Faulting process id: 0x4b0 Faulting application start time: 0x01d167cd96535e01 Faulting application path: C:\Users\hgservice\Desktop\Temp\LoginTool2\LoginDemo\bin\Release\LoginDemo.exe Faulting module path: C:\Windows\system32\KERNELBASE.dll Report Id: d6435b26-d3c0-11e5-b9a7-001999d6cbe5

Я также читал, что эта проблема может больше появляться, потому что программа пытается импортировать DLL во время работы, но все DLL-файлы, которые мне нужны для exe, находятся в одной папке. И, как я сказал на своем ноутбуке, он работает нормально. Кто-нибудь знает, в чем проблема?

+0

ли какой-либо из ваших других библиотек DLL нужно время выполнения? ваш ноутбук может иметь это, но другой компьютер не будет иметь его. –

+0

Что вы делаете? Проблема, похоже, связана с менеджером ресурсов смарт-карт ... вы делаете что-то со смарт-картами? Проверьте, какие службы работают на вашей рабочей машине по сравнению с нерабочим. –

+0

XMLParseException или XAMLParseException? Измените тему и тело, чтобы отразить фактическое возникшее исключение. –

ответ

1

Эта проблема не имеет ничего общего с WPF как таковой. Если мы проанализируем stacktrace, мы увидим, что она выбрана библиотекой 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).

+0

Я попытался запустить службу SmartCard, но произошла ошибка. В нем говорится: Windows не могла запустить службу смарт-карт на локальном компьютере. Ошибка 1058: служба не может быть запущена, потому что она отключена или потому что у нее нет связанных устройств. – L4c0573

+0

Что он говорит? –

+0

Но это не отключено, а устройство NFC-Smartcard Reader подключено. И я также установил все драйверы для этого читателя. Он отображается в диспетчере устройств как smartcardreader – L4c0573

0

Хорошо, ребята, я это исправил. Как уже ответили Микаль Коморовский и Джон Скит, проблема заключалась в том, что уловка карты Уорда не работала. Ответ Михаила Коморовского почти прав. Единственное, что мне пришлось сделать дальше, - это установить тип запуска на «manual». После этого я могу запустить сервис Smart Card, и теперь все работает.

enter image description here

Смежные вопросы