Если ваше приложение дает сбой, вы ничего не можете сделать, чтобы убедиться, что неуправляемые ресурсы удалены. Вам следует правильно реализовать одноразовый шаблон, используя неуправляемые ресурсы (если они еще не были), когда объект будет завершен. Таким образом, вы освободите свои ресурсы, когда служба будет закрыта, но в случае серьезного сбоя ваш код, вероятно, все равно не будет работать.
Я бы посоветовал, особенно если вы размещаете в службе Windows, которая может автоматически перезапускать ваш код, что вы пишете свой код с ожиданием его сбоя, оставляя неуправляемые ресурсы рядом, и, если возможно, повторно используете / восстанавливаете их , Кроме того, вы должны быть очень осторожны в программировании, чтобы убедиться, что любые сбои редки (и находятся вне вашего контроля).