Рейтинг:
24
joe_j
Привет,
я понял, как это сделать. Мне пришлось установить разрешение NETWORK SERVICES на EXCEL DCOM на сервере.
следующая проблема заключается в том, что сетевые службы блокируют файл excel в момент его создания, и это создает невозможность открытия и удаления файла excel.
ну я и выяснил это добавив
xlapp.quit()
решает проблему блокировки файла.
и теперь все в порядке
в любом случае спасибо
Рейтинг:
0
Member 8086579
сообщение об ошибке:
Получение фабрики COM - класса для компонента с CLSID {00024500-0000-0000-C000-000000000046} не удалось из-за следующей ошибки: доступ 80070005 запрещен. (Исключение из HRESULT: 0×80070005 (E_ACCESSDENIED)).
Решение:
Это проблема разрешений COM.
Запустите > Run > dcomcnfg (или "mmc -32"), а затем добавьте оснастку Component Services вручную, если вы не можете найти приложение на шаге 3)
Перейдите в службы компонентов и GT; компьютеры &ГТ; Мой компьютер &ГТ; настройка DCOM
Найдите приложение MS, вызывающее у вас проблемы (например, “приложение Microsoft Excel” для Excel или “документ Microsoft Word 97 – 2003” для Word)
Щелкните правой кнопкой мыши > Свойства
На вкладке Безопасность выберите пункт Настроить в разделе Разрешения на запуск и активацию и нажмите кнопку Изменить…
Добавьте учетную запись, под которой работает сайт (например, сетевая служба), и назначьте разрешения на локальный запуск и локальную активацию
Вуаля!
сообщение об ошибке:
[COMException (0x800a03ec): Microsoft Excel не может получить доступ к файлу " <filename>". Есть несколько возможных причин:
• Имя файла или путь к нему не существует.
• Файл используется другой программой.
• Книга, которую вы пытаетесь сохранить, имеет то же имя, что и открытая в данный момент книга.
Решение:
Это, по-видимому, проблема с Excel/Word/etc, не имеющим доступа к профилю при запуске через маршрут взаимодействия.
открыть Windows Explorer
В зависимости от того, установлена ли 32-битная или 64-битная версия office, вам нужно будет выполнить одно (или оба) из следующих действий:
Установка 32-битного офиса: перейдите к C:\Windows\System32\config\systemprofile
Установка 64-битного офиса: перейдите к C:\Windows\SysWOW64\config\systemprofile
Убедитесь, что папка "рабочий стол" существует (создайте ее, если ее там нет)
Щелкните правой кнопкой мыши > Свойства
На вкладке Безопасность: добавьте учетную запись, под которой работает сайт (например, сетевая служба) с разрешениями по умолчанию (Read &execute; List folder contents; Read)
Вуаля!
Fayaz7Wonders
Привет,
Большое спасибо за ваше решение.Он работает, но только тогда, когда я вошел на сервер.Когда я вышел из системы, произошла та же ошибка при экспорте Excel.Есть ли у вас какое-либо постоянное решение для этого?
J.Santichai
Хорошо сделано для этого решения :)
id8labs
Привет Уэс День,
У меня такая же проблема, на моем локальном хосте, когда я запускаю программу exel и word file создает и загружает правильно, но когда я публикую код на сервере, я получаю ошибку отказа в доступе.
"Получение фабрики COM-класса для компонента с CLSID {000209FF-0000-0000-C000-000000000046} не удалось из-за следующей ошибки: 80070005 Доступ запрещен. (Исключение из HRESULT: 0x80070005 (E_ACCESSDENIED))."
Я искал на стольких веб-сайтах и попробовал это
Начало и GT; выполнить &ГТ; программу dcomcnfg
Службы компонентов и GT; компьютеры &ГТ; Мой компьютер &ГТ; настройка DCOM
На моем локальном хосте у меня нет "приложения Microsoft Excel и документа Microsoft Word 97 – 2003", а на моем сервере у меня есть эти параметры. Я выбрал все возможные учетные записи, которые доступны, и дал полное разрешение. Все еще сталкиваюсь с той же проблемой. Мне нужно добавить учетную запись или что?
Пожалуйста, помогите мне в этом. Большое спасибо.
Рейтинг:
0
hadisalehy
1. Убедитесь, что на сервере установлена среда выполнения Office.
2. Если вы используете Windows Server 2008, то использование office interops-это длинная конфигурация, и вот шаги.
Лучше всего перейти на Open XML или вы можете настроить его как показано ниже
• Установите последнюю версию MS Office Pro (я использовал 2010 Pro)
• Создайте Пользователя ExcelUser. Назначьте WordUser с группой Admin
• Перейти к компьютеру -> Управление
• Добавить пользователя с нижеприведенными опциями
• Параметры Пользователя Пароль Никогда Не Истекает
• Пароль Не Может Быть Изменен
Ком+ Конфигурации
• Перейдите в Панель управления - > администратор -> службы компонентов -> DCOM Config
• Откройте Свойства Microsoft Word 97 - 2003
• Общие сведения -> уровень аутентификации : нет
• Безопасность -> настройка всех 3 разрешений, чтобы позволить всем
• Личность -&ГТ; этот пользователь -&ГТ; использовать ExcelUser /пароль
• Запустите приложение Excel, чтобы убедиться, что все в порядке
3.измените параметры безопасности приложения Microsoft Excel в DCOM Config.
Панель управления --&ГТ; администрирование - >У компонента сервисы --&ГТ;компьютеры --&ГТ; мой компьютер --&ГТ;настройка DCOM --&ГТ; ПО Microsoft Excel приложения.
Щелкните правой кнопкой мыши, чтобы открыть диалоговое окно свойств. Перейдите на вкладку Безопасность и настройте разрешения
Richard Deeming
Рекомендации по автоматизации работы офиса на стороне сервера[^]
В настоящее время корпорация Майкрософт не рекомендует и не поддерживает автоматизацию приложений Microsoft Office из любого автоматического, неинтерактивного клиентского приложения или компонента (включая ASP, ASP.NET, DCOM и NT Services), поскольку Office может демонстрировать нестабильное поведение и/или взаимоблокировку при запуске Office в этой среде.
Не говоря уже о том, что исходный вопрос совершенно ошибочен - код, запущенный на сервере, не может открыть файл на клиенте с помощью Office Interop. Файл откроется на сервере, где его никто никогда не увидит.