Ошибка на службе WCF с ссылками COM
WCF работает нормально, когда я отлаживаю его в VS2012. Ссылки в порядке, но когда я публикую его в IIS, служба не может разрешить ссылки. В выходной папке на publish нет этих dll, я не знаю, нормально ли это.
Я получаю эту ошибку: "Нет каких-либо дополнительных исправлений, связанных с COM-компонентом CLSID {9A8831F1-A263-11D1-8DCF-00A0C90FFFC2}, ошибка debido al siguiente: 80040154 Clase no registrada (Excepción de HRESULT_REG_RUSB_RD_R0_RD_R0_RB): 0_800BR" (0 исключение): 0B80000000000000000000000000000000000000000 (065) 0x8_RB_RUSB_R0_RB_R0_0_RB_0_0_R0_0R0_0_008 "
3 ответа
Проще всего было бы войти на этот сервер с правами администратора и запустить те же установочные пакеты для библиотек DLL, которые вы использовали, чтобы получить их на компьютере разработчика. Скорее всего, вы не захотите, чтобы для параметра "Локальная копия" было установлено значение "истина" для ссылок на библиотеки DLL. Когда COM-объекты установлены, они регистрируются в реестре, поэтому вам нужны права администратора. Сначала вы захотите проверить это на сервере DEV!
Возможно, вам придется Google DLLS, если у вас нет оригинальных пакетов установки, убедитесь, что вы получите правильную версию.
Вам нужно будет сделать это только один раз, и тогда вы сможете выпускать новые версии вашей Службы без переустановки COM-объектов.
Если вы хотите иметь возможность простой установки на несколько компьютеров, вы можете сделать это, добавив в свое решение проект установки и развертывания, однако вполне вероятно, что установщик, поставляемый с DLL, является гораздо лучшим и более простым выбором.
РЕДАКТИРОВАТЬ, например, я нашел установку для RDO 2.0 на сайте Microsoft MSRdo20.cab
Маловероятно, что IIS будет иметь доступ к вашей папке с документами. Вам нужно будет либо предоставить права чтения идентификатора приложения для папок, содержащих библиотеки DLL, либо отменить их регистрацию и зарегистрировать в другом месте.
Вам необходимо скопировать эти сборки локально в выходные данные сборки. Самый простой способ - изменить их в Visual Studio: