Продукт, над которым я работаю, имеет установщик, который делает кучу вещей, включая установку обычных файлов, настройку ключей реестра, установку веб-сайтов и веб-служб на IIS и создание запланированных задач. Мы используем этот установщик уже много лет, и время от времени у нас возникают с ним проблемы, но обычно мы можем их решить. Этот нас поставил в тупик.
Мы пытаемся создать кучу запланированных задач, и каждый раз возвращается сообщение "Keyset does not exist (Exception from HRESULT: 0x80090016)". Мы использовали этот установщик на нескольких разных машинах сегодня и не имели никаких проблем, но у нас возникли проблемы с одной из них.
Каждый поиск в Google говорил нам, что это проблема со службой Protected Storage. Сначала мы обнаружили, что эта служба не запущена, поэтому мы запустили ее, но у нас все еще возникают проблемы. Другие поиски предлагали очистить папку в Documents and Settings\All Users\Application Data\Microsoft\Crypto, но, учитывая, что мы работаем на Server 2008, этот путь не существует, и мне не удалось найти, где он может быть (я посмотрел в папке Users в Default, полагая, что это пользователь, который заменил "All Users").
Я также видел некоторые результаты, появляющиеся при работе с IIS на сервере 2008, и они предполагают, что существует проблема с некоторыми сертификатами, не разрешающими доступ пользователю IIS, но мы не используем сертификаты в нашей установке, и ошибка возникает до того, как мы обращаемся к IIS.
Для тех, кто разбирается в коде, мы используем TaskScheduler.dll (который, насколько я понимаю, обрабатывает все, что связано с COM+) для создания наших задач, а наш установщик создан с использованием инструментария WiX и C#.
Кто-нибудь когда-нибудь сталкивался с подобной проблемой или с этой ошибкой и смог ее исправить или обойти?
решение1
Мы обнаружили, что нам пришлось удалить/переименовать S-1-5-18
папку в C:\ProgramData\Microsoft\Crypto\RSA
. После этого у нас не возникло никаких проблем.