Ole error 800a175d как исправить эту ошибку

Аннотация

Автоматизация может быть использована разработчиками для создания специальных программ на базе функций и компонентов продуктов из пакета Office. Хотя такая программная разработка может быть реализована в клиентской системе с относительной легкостью, может возникнуть ряд сложностей, если автоматизация выполняется из серверного кода, например Microsoft Active Server Pages (ASP), ASP.NET, DCOM или службы Windows NT.

В этой статье рассматриваются сложности, с которыми могут столкнуться разработчики. Также в ней предложены альтернативы автоматизации, которые могут повысить производительность. Но разработчикам следует иметь в виду, что рекомендации в данной статье предоставлены исключительно в информационных целях. Корпорация Майкрософт не советует производить и не поддерживает серверной автоматизации Office.

Примечание: В этом контексте распространяемый компонент ядра СУБД Access и среда выполнения Access считаются компонентами Microsoft Office. В этом контексте термин «серверный» относится также к программному коду, который запускается на рабочих станциях под управлением Windows, если его запуск осуществляется с другой рабочей станции Windows (по отношению к станции, на которой работает вошедший в систему пользователь). Например, программы, запущенные планировщиком с помощью учетной записи SYSTEM, выполняются в той же среде, что и «серверный» программный код ASP или DCOM. Следовательно, могут возникнуть многие из рассмотренных в статье проблем. Ссылки на источники дополнительных сведений о рабочих станциях Windows и COM содержатся в разделах «Дополнительные сведения» и «Ссылки» этой статьи.

Дополнительная информация

Все современные версии Microsoft Office были созданы, проверены и настроены для применения на рабочих станциях конечными пользователями. Их использование предполагает наличие интерактивного рабочего места и профиля пользователя. Кроме того, эти продукты не обеспечивают уровень безопасности и возможности повторного входа, удовлетворяющие требованиям серверных компонентов, которые запускаются автоматически.

В настоящее время корпорация Майкрософт не рекомендует и не поддерживает автоматизацию приложений Microsoft Office из любого автоматического, неинтерактивного клиентского приложения или компонента (включая ASP, ASP.NET, DCOM и службы NT), так как Office может работать нестабильно и (или) взаимоблокировка при запуске Office в этой среде.

При создании решения, которое выполняется в контексте на стороне сервера, следует попытаться использовать компоненты, которые были сделаны безопасными для автоматического выполнения. Или попытаться найти альтернативы, которые позволяют исполнять хотя бы часть кода на стороне клиента. Если вы используете приложение Office в серверном решении, для него будет отсутствовать ряд важных возможностей, необходимых для корректной работы. Кроме того, таким образом вы поставите под угрозу стабильность всего решения в целом.

Проблемы при использовании серверной автоматизации Office

Разработчикам серверных решений для приложений Office необходимо знать о пяти крупных областях, в которых поведение Office отличается от ожидаемого в силу используемой среды. Для успешной работы программ эти отклонения должны быть обязательно учтены, а их влияние минимизировано. Внимательно изучите эти вопросы при создании приложения. Все эти проблемы невозможно устранить одним решением. В зависимости от задач проекта приоритетность элементов будет изменяться.

  • Удостоверение пользователя. Приложения Office предполагают удостоверение пользователя при запуске приложений, даже если служба автоматизации запускает приложения. Приложения пытаются инициализировать панели инструментов, меню, параметры, принтеры и некоторые надстройки на основе параметров в кусте реестра пользователей для пользователя, который запускает приложение. Многие службы выполняются под учетными записями без профилей пользователей (например, учетной записью SYSTEM или учетными записями IWAM_[имя_сервера]). Таким образом, Office может неправильно инициализироваться при запуске. В этом случае Office возвращает ошибку для функции CreateObject или Функции CoCreateInstance. Даже если приложение Office можно запустить, другие функции могут работать неправильно, если профиль пользователя не существует.

  • Взаимодействие с рабочим столом. Работа приложений Office предполагает наличие интерактивного рабочего стола. В некоторых условиях для корректной работы определенных функций автоматизации приложение необходимо сделать видимым. Office сконструирован таким образом, что всякий раз при возникновении ошибки или необходимости указания параметра выводится соответствующее модальное диалоговое окно. Модальное диалоговое окно на не интерактивном рабочем столе не может быть отвергнуто , что приводит к остановке (зависанию) потока на неопределенное время. Даже если некоторые методы написания программ позволяют снизить возможность возникновения такой ситуации, полностью исключить ее нельзя. Уже только этот факт делает запуск приложений Office из серверного окружения рискованным и непредсказуемым.

  • Повторное использование и масштабируемость. Серверные компоненты должны быть высокоцентрированными, многопотоковые COM-компоненты с минимальными издержками и высокой пропускной способностью для нескольких клиентов. Приложения Office почти во всех отношениях полностью противоположны. Приложения Office не являются повторными серверами автоматизации на основе STA, которые предназначены для предоставления разнообразных, но ресурсоемких функций для одного клиента. Приложения обеспечивают небольшую масштабируемость в качестве решения на стороне сервера. Кроме того, приложения имеют фиксированные ограничения на важные элементы, такие как память. Их нельзя изменить с помощью конфигурации. Что еще более важно, приложения используют глобальные ресурсы, такие как сопоставленные файлы памяти, глобальные надстройки или шаблоны и общие серверы службы автоматизации. Это может ограничить количество экземпляров, которые могут работать одновременно, и привести к условиям гонки, если приложения настроены в многопользовательской среде. Разработчикам, планирующим одновременно запускать несколько экземпляров любого приложения Office, необходимо рассмотреть возможность создания пула или сериализации доступа к приложению Office, чтобы избежать потенциальных взаимоблокировок или повреждения данных.

  • Устойчивость и стабильность: Office 2000, Office XP, Office 2003 и Office 2007 используют технологию установщика Microsoft Windows (MSI), чтобы упростить установку и самостоятельное восстановление для конечного пользователя. В MSI представлена концепция «установка при первом использовании». Это позволяет динамически устанавливать или настраивать компоненты во время выполнения для системы или чаще для конкретного пользователя. В серверной среде это снижает производительность и повышает вероятность появления диалогового окна с запросом на утверждение установки или предоставление диска установки. Хотя это предназначено для повышения устойчивости Office как продукта конечного пользователя, реализация office возможностей MSI в серверной среде является контрпродуктивной. Кроме того, стабильность Office в целом не может быть гарантирована при запуске Office на стороне сервера, так как она не была разработана и не протестирована для этого типа использования. Использование Office в качестве компонента службы на сетевом сервере может снизить стабильность этого компьютера и, следовательно, снизить стабильность всей сети.

  • Безопасность на стороне сервера: Приложения Office не были спроектированы для использования на сервере. Поэтому в ходе разработки приложений Office во внимание не принимались те проблемы безопасности, с которыми сталкиваются распределенные компоненты. Office не осуществляет проверку входящих запросов. Office не обеспечивает защиту от непреднамеренного запуска макроса или другого сервера, который, в свою очередь, может запустить макрос. Не открывайте файлы, отправленные на сервер с анонимного веб-сайта. В зависимости от параметров безопасности, которые были установлены в последний раз, сервер может запускать макросы в контексте администратора или системы с полными привилегиями и, следовательно, может скомпрометировать вашу сеть. Кроме того, Office использует многие клиентские компоненты (например, Simple MAPI, WinInet и MSDAIPP), которые для ускорения обработки данных кшируют сведения о прохождении клиентами проверки. Если Office был автоматизирован на сервере, один экземпляр может работать более чем с одним клиентом. Если в ходе сессии были кэшированы данные проверки подлинности, кэшированные данные одного клиента могут быть использованы другим. Следовательно, клиент может получить закрытые для него разрешения доступа, выдавая себя за другого пользователя.

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

Помимо этих проблем, при попытке автоматизировать Office на стороне сервера может возникнуть одна из следующих распространенных ошибок:

  • Функции CreateObject и CoCreateInstance возвращают в процессе выполнения одно из следующих сообщений об ошибке и не запускаются для автоматизации.
     

    Сообщение 1

    Ошибка времени выполнения «429»: компонент ActiveX не может создать объект

    Сообщение 2

    Ошибка времени выполнения «70»: отказано в разрешении

    Сообщение 3

    CO_E_SERVER_EXEC_FAILURE (0x80080005): Ошибка при выполнении приложения-сервера

    Сообщение 4

    E_ACCESSDENIED (0x80070005): Отказано в доступе

  • При открытии документа Office появляется одно из следующих сообщений об ошибке.

    Сообщение 1

    Ошибка времени выполнения «5981» (0x800A175D): не удалось открыть хранилище макросов

    Сообщение 2

    Ошибка времени выполнения «1004»: сбой метода «~» объекта «~»

  • Функции CreateObject и CoCreateInstance перестают отвечать и зависают или выполняются очень долго. На некоторых серверах процесс создания занимает мало времени, однако в журнале событий Windows появляется ошибка 1004, указывающая на остановку приложения.

  • Определенные функции неожиданно завершаются или перестают отвечать на неопределенное время из-за предупреждений или других диалоговых окон, которые требуют внимания пользователя.

  • Одновременное появление нескольких запросов или проведение тестирования в предельных режимах может привести к сбою (зависанию) программы или аварийному завершению при открытии или закрытии приложения Office. После этого в памяти остается процесс, который не может быть завершен, либо впредь все экземпляры автоматизированного приложения не функционируют.

Другие проблемы или сообщения могут появиться в дополнение к перечисленным здесь, но эти проблемы обычно возникают в результате пяти основных проблем, перечисленных ранее в этой статье. 

Альтернативы серверной автоматизации

Майкрософт настоятельно рекомендует разработчикам искать альтернативы автоматизации Office при разработке серверных решений. В связи с ограничениями архитектуры Office изменений в конфигурации недостаточно для решения всех проблем. Майкрософт настоятельно рекомендует воспользоваться рядом альтернатив, которые не требуют установки Office на сервере и справляются с большинством распространенных задач быстрее и эффективнее, нежели автоматизация. Перед внедрением Office в свой проект в качестве серверного компонента, вам стоит рассмотреть существующие альтернативы.

Большинство задач автоматизации на стороне сервера связаны с созданием или редактированием документов. Office 2007 поддерживает новые форматы файла Open XML, которые позволяют разработчикам создавать, читать и трансформировать содержимое файлов на сервере. Эти форматы файлов используют пространство имен System.IO.Package.IO  в Microsoft .NET 3.x Framework для редактирования файлов Office без участия самих клиентских приложений Office. Это рекомендуемый и поддерживаемый метод обработки изменений в файлах Office из службы.

Форматы файлов Open XML являются общедоступным стандартом. 


Корпорация Майкрософт предоставляет пакет SDK для управления форматами файлов Open XML из платформы .NET 3.x Framework. Дополнительную информацию о SDK и том, как его использовать для создания или редактирования файлов Open XML, см. на следующих сайтах Сети разработчиков Майкрософт (MSDN):

Документация по пакету SDK Open XML

Практическое руководство. Управление документами в форматах Office Open XML

Управление файлами Word 2007 с помощью объектной модели Open XML (часть 1 из 3)

Управление файлами Word 2007 с помощью объектной модели Open XML (часть 2 из 3)

Управление файлами Word 2007 с помощью объектной модели Open XML (часть 3 из 3)

Управление файлами Excel 2007 и PowerPoint 2007 с помощью объектной модели Open XML (часть 1 из 2)

Управление файлами Excel 2007 и PowerPoint 2007 с помощью объектной модели Open XML (часть 2 из 2)

Создание решений для создания документов Server-Side с помощью объектной модели Open XML (часть 1 из 2)

Создание решений для создания документов Server-Side с помощью объектной модели Open XML (часть 2 из 2)

При передаче файлов формата Open XML от ASP или ASP.NET необходимо предоставить правильный тип Многоцелевого расширения почты Интернета (MIME) для передаваемого содержимого. Со списком типов MIME для файлов Office 2007 можно ознакомиться по следующему адресу:

Типы MIME формата файлов Office 2007 для потоковой передачи содержимого HTTP

Если все ваши пользователи используют приложения, выходившие до Office 2007, и вы не хотите вводить в решение обязательное использование форматов Open XML, можно воспользоваться любым другим недвоичным форматом файла Office, например HTML, XML и RTF. Вы можете передавать эти файлы в клиентское приложение Office с помощью MIME-типа. Для редактирования, сохранения и возвращения документа на сервер необходим только ASP на сервере.

Для получения дополнительных сведений о любом из этих разделов и примеров, показывающих, как их реализовать, щелкните следующие номера статей, чтобы просмотреть статьи в базе знаний Майкрософт:

198703 Как автоматизировать Excel из VBScript на компьютере клиента

278973 Пример использования технологии ADO для чтения и записи данных в книге Excel

286023 Как использовать компонент Visual Basic ActiveX для автоматизации Word из Internet Explorer
 

Если ваш бизнес требует создания файлов двоичного формата Office 97, Office 2000, Office XP и Office 2003, существуют предложения компонентов от независимых разработчиков, которые могут помочь вам. Майкрософт не предоставляет подобных компонентов, поэтому вам необходимо либо создать свое собственное решение, или приобрести такое у независимых разработчиков. Существует ряд продуктов от независимых разработчиков. Рекомендуется рассмотреть все возможные предложения независимых разработчиков и выбрать оптимальные решения для конкретных деловых потребностей.

Если вы хотите создать собственное решение для прямого редактирования файлов Office 97, Office 2000, Office XP, Office 2003 двоичного формата, вы можете бесплатно скачать спецификации к данным файловым форматам в соответствии с условиями Обязательства Майкрософт об открытой технической документации/Microsoft Open Specification Promise (OSP). Для документации или создаваемых вами продуктов не существует технической поддержки, однако сама документация находится в открытом доступе. 

Серверные решения также могут разрешить пользователям передавать файлы, а затем предоставить серверу отрисовку файлов для просмотра в Интернете или на других носителях. Корпорация Майкрософт в настоящее время работает над предложением таких функций и предоставляет раннюю версию этой возможности в Microsoft службы Excel.

службы Excel — это новая серверная технология, которая входит в состав Microsoft Office SharePoint Server 2007 и позволяет загружать, вычислять и отображать книги Excel в Office SharePoint Server 2007. Для получения дополнительных сведений о технологии Excel Services посетите следующую веб-страницу узла MSDN:

Обзор службы Excel

Пошаговое руководство. Разработка пользовательского приложения с помощью веб-служб Excel

Создание бизнес-приложений с помощью форматов Службы Excel и Office Open XML
Службы автоматизации Word, это новое служебное приложение в SharePoint Server 2010. Службы автоматизации Word обеспечивают автоматическое конвертирование документов в форматы, поддерживаемые клиентским приложением Microsoft Word.

Общие сведения о службах Word Automation Services

Знакомство со службами автоматизации Word
Выберите наиболее подходящий из предложенных в этой статье методов и продумайте разворачивание созданного решения. Приведенные в данной статье рекомендации не гарантируют решения всех возникающих проблем. Тщательно протестируйте решение перед его разворачиванием.

Ответы с готовыми решениями:

asp -> word: Microsoft Word error ‘800a175d’ Не удается открыть банк макросов.
Вот, проблема …

dim w
Set w=server.CreateObject(‘Word.Application’)…

System.Runtime.InteropServices.COMException (0x800A175D): Не удается открыть банк макросов
Всем привет!

Не открывается вордовский документ из программы на C#, выходит ошибка:…

Не удается открыть банк макросов
Приложение C# написанное в VS 2012, подключила сборку Microsoft.Office.Interop.Word,все работает, а…

«Не удается открыть банк макросов» при попытке изменить
Скопировал с одного компьютера на другой шаблон normal.dot, содержащий в себе несколько десятков…

0

If you are using Microsoft Word Automation or COM Components to read a MS Word document, you may notice the following error message for few word documents «Error 800A175D — Could Not Open Macro Storage«.

This is caused by the user account, whose «user hive» is not loaded when Microsoft Word started. Continue reading to know more about the issue and solution.

Microsoft Word returns Error 800A175D - Could Not Open Macro Storage (www.kunal-chowdhury.com)

If you open Microsoft Word under a user account and try to read any word documents for which the «user hive» is not loaded, you may notice the error «Could Not Open Macro Storage«. By default, only the interactive user and services running from a user account have their User Registry hive loaded. In such case, you must identify under what user account Word is running and in what context you are developing.

To avoid the error, you should either start the Word as an Interactive User or administrative rights. Alternatively, you can load the user hive for the user account programmatically or have a dummy service that runs under the user account.

As per the Microsoft KB article (KB224338):

You must identify under what user account Word is running, and in what context you are developing. For example, if you are automating from a Microsoft Transaction Server (MTS) package, the default user account is IWAM_MachineName.

In this scenario, you can change the user to «Interactive User» in the Internet Service Manager Microsoft Management Console. You need to right-click on your package, click the Identity tab and then click Interactive User.

Thank you for visiting our website! We value your engagement and would love to hear your thoughts. Don’t forget to leave a comment below to share your feedback, opinions, or questions. We believe in fostering an interactive and inclusive community, and your comments play a crucial role in creating that environment.

  • Remove From My Forums
  • Question

  • Using the code below to open a word document.  It’s worked successfully on several thousand documents, but my customer recently sent me one that causes an automation error during the call to Documents.Open();  Error is «Could not open macro storage.»

    I’ve searched and see a lot about normal.dot being corrupt, or an unspecified user context, however in my case:

    1. It fails only on specific document(s)
    2. Application is a desktop application running as the interactive user.
    3. Task manager shows word also running as interactive user (in same session).
    4. If word is launched manually, the document opens without any complaint.

    So is there anything else I can try?

    ts.TraceEvent(TraceEventType.Verbose, 0, "new Word.Application();");
    word = new Application();
    word.Visible = visible;
    
    ts.TraceEvent(TraceEventType.Verbose, 0, "word.Documents.Open("{0}");", fileName);
    document = word.Documents.Open(ref oFileName, // FileName
                    ref oFalse,  // ConfirmConversions (false=no dialog)
                    ref oFalse,  // ReadOnly
                    ref oFalse,  // AddToRecentFiles
                    ref oMissing, // PasswordDocument
                    ref oMissing, // PasswordTemplate
                    ref oMissing, // Revert
                    ref oMissing, // WritePasswordDocument
                    ref oMissing, // WritePasswordTemplate
                    ref oMissing, // Format
                    ref oMissing, // Encoding
          /*
          ** passing oFalse for Visible here causes an exception 
          ** when the document is printed. Rely on oMissing to 
          ** grab the correct value from the application state.
          */
                    ref oMissing, // Visible
                    ref oFalse,  // OpenAndRepair (false=no dialog)
                    ref oMissing, // DocumentDirection
                    ref oTrue,   // NoEncodingDialog
                    ref oMissing); // XMLTransform
    
    if (null == document)
      throw new Exception("No document after successful open.");
    

    This signature unintentionally left blank.

Are you trying to use Microsoft Word, but are you getting the error message ‘800A175D’?

Tech Support 24/7

Ask a Tech Specialist Online

Connect with the Expert via email, text or phone. Include photos, documents, and more. Get step-by-step instructions from verified Tech Support Specialists.

Ask a Tech Specialist Online

On this page, you will find more information about the most common causes and most relevant solutions for the Microsoft Word error ‘800A175D’. Do you need help straight away? Visit our support page.

Error information

How to solve Microsoft Word error 800A175D

We’ve created a list of solutions which you can follow if you want to solve this Microsoft Word problem yourself. Do you need more help? Visit our support page if you need professional support with Microsoft Word right away.

Tech Support 24/7

Ask a Tech Specialist Online

Connect with the Expert via email, text or phone. Include photos, documents, and more. Get step-by-step instructions from verified Tech Support Specialists.

Ask a Tech Specialist Online

Have you found a solution yourself, but it is not in the list? Share your solution in the comments below.

Need more help?

Do you need more help?

Tech experts are ready to answer your questions.

Ask a question

Понравилась статья? Поделить с друзьями:
  • P0011 ошибка mitsubishi outlander
  • Oki c9650 ошибка 983
  • P0013 ошибка тойота
  • P0011 ошибка kia рио
  • Oki b431dn ошибка 547