Próbuję edytować dokument słowo z VB.NET korzystając w przeważającej części ten kod:Pobieranie fabryki klasy COM dla składnika błędu podczas generowania dokumentu słowo
Jak zautomatyzować Word z Visual Basic .NET Utwórz nowy dokument http://support.microsoft.com/kb/316383
Działa dobrze na moim komputerze, ale po opublikowaniu na serwerze pojawia się następujący błąd.
Retrieving the COM class factory for component with CLSID {000209FF-0000-0000-C000-000000000046} failed due to the following error: 80070005.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.UnauthorizedAccessException: Retrieving the COM class factory for component with CLSID {000209FF-0000-0000-C000-000000000046} failed due to the following error: 80070005.
Rzeczywisty błąd zdarza się, gdy próbuję po prostu utworzyć obiekt aplikacji słowo
Dim oWord As New Word.Application
użyciu programu Visual Studio 2008 i VB.NET 3.5. Zrobiłem odniesienie do "Biblioteki obiektów Microsoft Word 10.0" i widzę plik Interop.Word.dll w katalogu bin.
Korzystanie z MS Office 2003 na komputerze deweloperskim i Windows Server 2003
nadal dość nowym do .NET i nie mają wiedzy na temat serwera okna, ale „UnauthorizedAccessException” brzmi jak wydania zgody. Zastanawiam się, czy ktoś mógłby wskazać mi właściwy kierunek na to, co muszę zrobić, aby moja mała aplikacja miała dostęp do słowa.
Co ciekawe, gdy zalogowałem się do systemu i uruchomiłem program Word, uruchomiłem instalator. Wydaje mi się, że nikt nie użył wcześniej tego użytkownika. To nie rozwiązało mojego problemu, ale zastanawiam się nawet bez problemu z uprawnieniami, jeśli to powstrzymałoby go przed działaniem. Nie mój kod jest aplikacją internetową. Chociaż jest to mała rzadko używana aplikacja, nigdy nie zastanawiałem się, co by się stało, gdyby dwie osoby próbowały uruchomić ją w tym samym czasie. Dzięki za to wejście. Czy istnieje sposób sprawdzenia, czy ktoś inny uzyskuje dostęp do obiektu COM? Jestem prawie pewien, że nic innego nie jest, ale nie wiedziałbym nawet, gdzie to sprawdzić. – TheDPQ
Aplikacja internetowa działa jako użytkownik? Na przykład w IIS 7 pula aplikacji będzie działać jako system lokalny, który prawdopodobnie będzie miał ten sam problem. –
Ponownie usprawiedliwić moją ignorancję, ale jest "Network Service", o czym mówisz? Jest to tożsamość, której pula aplikacji jest ustawiona. – TheDPQ