Błąd dostępu do komponentów COM

Zbudowałem dodatek do Microsoft Office Word. Nie ma problemu z używaniem dodatku, gdy Word jest uruchamiany jako Administrator, ale jeśli nie jest uruchamiany jako Administrator, istnieją dwa wspólne wyjątki dostępu do elementów wstążki.

Pierwszy wyjątek:

Unable to cast COM object of type 'System.__ComObject' to interface type 'Microsoft.Office.Core.IRibbonUI'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{000C03A7-0000-0000-C000-000000000046}' failed due to the following error:  could not be found. (Exception from HRESULT: 0x80030002 (STG_E_FILENOTFOUND)).
   at Microsoft.Office.Core.IRibbonUI.InvalidateControl(String ControlID)

Ten błąd występuje, gdy kontrola jest unieważniona następującym kodem:

ribbon.InvalidateControl("control-id");

I drugi wyjątek:

Unable to cast COM object of type 'Microsoft.Office.Interop.Word.ApplicationClass' to interface type 'Microsoft.Office.Interop.Word._Application'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{00020970-0000-0000-C000-000000000046}' failed due to the following error:  could not be found. (Exception from HRESULT: 0x80030002 (STG_E_FILENOTFOUND)).
   at Microsoft.Office.Interop.Word.ApplicationClass.get_Selection()

Ten błąd występuje w ostatniej linii z następujących kod:

object wdStory = Word.WdUnits.wdStory;
object wdMove = Word.WdMovementType.wdMove;
WrdApp.Selection.EndKey(ref wdStory, ref wdMove)

Jak mogę rozwiązać ten problem?

Author: Kody, 2012-10-18

6 answers

Problem rozwiązany!

Wcześniej zainstalowałem Office 2010, więc są pewne niespójności w rejestrze systemu Windows. Aby je naprawić, otwórz regedit i znajdź dla CLSID z błędu.

Znajdziesz coś takiego dla drugiego błędu:

HKEY_CLASSES_ROOT\Interface\{00020970-0000-0000-C000-000000000046}

Z podkluczami:

  • ProxyStubClsid
  • ProxyStubClsid32
  • TypeLib

Spójrz na wartości (Default) i Version wewnątrz TypeLib.

Teraz znajdź węzeł poniżej, używając wartości {[2] } jako <TypeLib ID>.

HKEY_CLASSES_ROOT\TypeLib\<TypeLib ID>\<version>

Jako potomek tego elementu znajdziesz więcej niż jeden element, jednym z nich jest Version pierwszego rejestru. Jeśli sprawdzisz pozostałe elementy, przekonasz się, że nie wskazują na nic. Usuń pozostałych!!!Rozwiązane!

 59
Author: Victor,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-02-15 13:12:44

Zacząłem otrzymywać ten sam wyjątek po aktualizacji do najnowszej wersji Office. Próbowałem wielu sugerowanych poprawek, w tym czyszczenia rejestru w sposób podobny do tego, co opisał @ Victor.

To, co w końcu pomogło (choć mogło być kombinacją czynników), to "naprawa" instalacji:

Programs and Features → latest Office version → Repair .

 8
Author: Nikita G.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-27 21:23:07

Naprawa biura zadziałała. W moim przypadku zainstalowałem projekt, który moim zdaniem zmienił konfigurację i nie był w stanie wywołać procedury migracji danych ze skoroszytu Excela do SQL

 1
Author: Joseph Warero,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-19 10:05:04

Wystarczy zainstalować obsługę programowalności Office 2010 / MS word/. NET.

 0
Author: Cicekfidan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-17 06:46:29

@Victor postawiłeś mnie na dobrej drodze. Moim problemem nie było wiele wartości w rejestrze, ale raczej brakująca wartość, której Office365 nigdy nie dodał. Dzięki tobie udało mi się znaleźć własne rozwiązanie. Tysiąc tysięcy dzięki.

Szczegóły są tutaj dla wszystkich, którzy wciąż szukają rozwiązania.

 0
Author: Andrew,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:02:37

Mam ten sam problem dzisiaj z VS2015 i Office 2013. Zmiana celu platformy na x64 zadziałała.

 0
Author: Vaibhav Verma,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-20 05:14:47