DCOM 0x80070005 Отказано в доступе

У меня есть очень странная вещь, которую я не могу побить пару дней. У меня есть самостоятельно написанная 32-разрядная служба на основе.NET (скомпилированная с флагом x86), работающая на 64-разрядной машине Win 10 Pro, которая использует компонент DCOM {6F17505C-4351-46AC-BC1E-CDE34BB53FAA} (сервер OPC начался как сервис). До Нью-Йорка он работал пару месяцев без проблем, но на прошлой неделе мой сервис не запустился с ошибкой 0x80070005.

System.UnauthorizedAccessException: не удалось создать экземпляр компонента COM с CLSID {6F17505C-4351-46AC-BC1E-CDE34BB53FAA} из-за следующей ошибки: 80070005 Отказано в доступе (исключение HRESULT: 0x80070005 (E_ACCESSDENI)) на System.RuntimeTypeHandle.CreateInstance(типа RuntimeType, Boolean, Boolean publicOnly NOCHECK, Boolean & canBeCached, RuntimeMethodHandleInternal & CTOR, Boolean& bNeedSecurityCheck) в System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, булевой skipCheckThis, булевой fillCache, StackCrawlMark& ​​stackMark) в System.RuntimeType.CreateInstanceDefaultCtor(Логическое publicOnly, логическое skipCheckThis, логическое fillCache, StackCrawlMark& ​​stackMark) в System.Activator.CreateInstance(тип Type, логический непубличный тип) в System.Activator.CreateInstance(тип тип) в OPCDA.NET.OpcLaver..NET.OpcServer.Connect(String SrvName) ...

Обе службы работают под локальной системной учетной записью (SYSTEM), разрешения предоставляются в dcomcnfg для компонента для администраторов и системы и в реестре для HKEY_CLASSES_ROOT\AppID{6F17505C-4351-46AC-BC1E-CDE34BB53FAA} (ну, я не вижу причин для проверил разрешения для этой ветки, но я много читал и тоже пробовал). Я также попытался переустановить их все безуспешно. Неустановленные обновления windows - не повезло. Есть несколько продуктов, установленных сторонними разработчиками, которые были установлены в это время, но я считаю, что это не может быть вредным для связи DCOM. Я также попытался создать пользователя с правами администратора и запустить обе службы под этим пользователем.

Я надеюсь, что вы можете предложить мне что-то полезное в этой странной ситуации.

1 ответ

Ну, я связался с производителем OPC-сервера, и служба поддержки сказала мне, что (свободно переведено с немецкого) "С начала этого года появляется много сообщений об ошибках, говорящих о том, что обновления Windows нарушают связь OPC". Итак, я удалил все обновления с конца декабря и - volia - это работает сейчас!

Служба поддержки предложила мне запустить следующую партию:

wusa /uninstall /kb:4056888 /quiet /norestart
wusa /uninstall /kb:4056890 /quiet /norestart
wusa /uninstall /kb:4056891 /quiet /norestart
wusa /uninstall /kb:4056892 /quiet /norestart
wusa /uninstall /kb:4056893 /quiet /norestart
wusa /uninstall /kb:4056897 /quiet /norestart
wusa /uninstall /kb:4056898 /quiet /norestart

но я не был установлен ни один из перечисленных. Жаль, но я не перечислил никаких действительно удаленных обновлений (не смог найти историю обновлений в Win10, вижу только установленные обновления).

Другие вопросы по тегам