Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / использование небезопасного кода / 6 сообщений из 6, страница 1 из 1
25.02.2015, 14:19
    #38888486
caballero
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование небезопасного кода
Имеется сервис, который использует сишные dll (APi к китайскому RFID сканеру) через dllimport.
по какой то причине (китайский код) в либе вываливается ошибка доступа к памяти и процес крашится. Никакой перехват try catch естественно не работает.
Проблема в том что это именно сервис и он должен крутится все время - заглядывать в список служб не упал ли он никто пять раз в день не будет.
Есть ли какой способ дергать подобное API безопасно - как то изолировать его или перехватывать так чтобы не падал процесс?
Или может есть какой способ в винде перезапускать периодически службу - шедулер через net start как то примитивно, даже неудбно такое заказчику предлагать.
.
...
Рейтинг: 0 / 0
25.02.2015, 14:47
    #38888529
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование небезопасного кода
caballeroИли может есть какой способ в винде перезапускать периодически службу - шедулер через net start как то примитивно, даже неудбно такое заказчику предлагать.
зато работоспособно. лучше автоматический перезапуск настроить

а что падает - или кривой интероп, или кривая библиотека.

вариант - из сервиса запускать отдельный процесс, при падении - перезапускать.
заодно можно этот процесс на с++ сделать, может падать реже будет
...
Рейтинг: 0 / 0
25.02.2015, 15:02
    #38888543
caballero
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование небезопасного кода
ошибка в dll внутри
интероп как у их в примере что с api идет

перезапускать конечно можно. Думал есть способ так изолировать вызовы APi чтобы процес не падал.
...
Рейтинг: 0 / 0
25.02.2015, 15:08
    #38888549
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование небезопасного кода
caballero,

1
2
Только не надо забывать о том, что CSE сообщает о том, что состояние программы действительно нарушено, и пытаться реанимировать её в том же процессе не нужно. Вот достойно помереть, выдав куда нужно сообщение - вполне можно.
...
Рейтинг: 0 / 0
25.02.2015, 15:22
    #38888574
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование небезопасного кода
caballeroДумал есть способ так изолировать вызовы APi чтобы процес не падал.
изолировать в отдельном процессе, иначе - результат непредсказуем
...
Рейтинг: 0 / 0
25.02.2015, 16:19
    #38888662
Ilya81
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование небезопасного кода
Если просто обработать исключение, то HandleProcessCorruptedStateExceptionsAttribute. Главное, как замечено сообщением выше, при таком простом способе в общем случае результат непредсказуем, так что это годится только если есть уверенность, что ошибки некритичные.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / использование небезопасного кода / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]