2013-06-27 4 views
1

Мы переносим некоторые устаревшие приложения из Win 2003 Server + IIS6 на новый сервер Win 2008 Server + IIS7.Использование MS Office Interop v11 с Office 2010

Мы сталкиваемся с несколькими проблемами, последнее из которых заключается в том, что некоторые из наших приложений используют Office Interop v11 (Office 2003), а на новом сервере установлен Office 2010 (+ interop v14).

Я получаю эту ошибку:

Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80070005.

Я пытался решить после многих форумах (этот, например: http://forums.asp.net/t/1303594.aspx/1). Но ничего не меняется ...

Теперь мне интересно, может ли это быть зависеть от установленной версии. Есть ли способ заставить устаревшие приложения работать без перекомпиляции их для новой версии взаимодействия?

+0

Я знаю, что в данный момент это не вариант для вас, но вы не должны использовать Office Interop в веб-приложениях вообще. [Это официально не поддерживается Microsoft.] (Http://stackoverflow.com/a/8709255/87698) – Heinzi

+0

@Heinzi Я знаю, но, как я уже сказал, это устаревшие приложения ... – davioooh

ответ

0

Для решения этой проблемы я просто установил Office 2003 на новый сервер. (Я обнаружил, что две версии Office могут сосуществовать без конфликтов на одном компьютере ...)

1

Пробег: NetOffice. Это довольно прозрачная оболочка API-интерфейса Office Interop. Они обнаруживают и загружают доступные библиотеки Interop DLL во время выполнения, поэтому вам не нужно создавать свое решение против них.

+0

Должен ли я изменить любую ссылку/зависимость в моих приложениях для использования этого инструмента? – davioooh

+0

Это библиотека. Вам нужно будет ссылаться на него и изменить директивы 'use' для импорта типов NetOffice вместо Interop. Код, использующий Interop, не нуждается ни в каких изменениях. – MisterMetaphor