Не удалось получить фабрику класса COM для компонента с CLSID {00024500-0000-0000-C000-000000000046} из-за следующей ошибки: 80070005
У меня есть веб-сайт ASP.NET на IIS, и он автоматически создает файлы Excel, проблема в том, что я получаю эту ошибку:
"Не удалось получить фабрику классов COM для компонента с CLSID {00024500-0000-0000-C000-000000000046} из-за следующей ошибки: 80070005."
Я попытался почти все в сети, чтобы решить эту проблему, но я не смог: я изменил конфигурации DCOM Excel для пользователя, используемого для веб-сайта, создал папку Desktop в System32 и SysWOW64 с полным контролем для того же пользователя, я даже изменил настройки безопасности папки установки Miscrosoft Office для того же пользователя, но безуспешно.
В моем случае мой веб-сайт подключается к другому серверу с помощью службы отчетов SQL Server для получения некоторых отчетов, поэтому, если я изменю пользователя, которого использует веб-сайт, на пользователя "LocalSystem", я не смогу получать отчеты со второго сервера, но могу генерировать файлы Excel.
Таким образом, решение может быть одним из двух: либо я могу создать файлы Excel с этим пользователем, либо получить отчеты со второго сервера как пользователь "LocalSystem".
2 ответа
Попробуйте сделать следующее:
- Убедитесь, что сборки взаимодействия Office установлены.
- Проверьте версию сборок по разработке и производству.
- Создайте папку "Рабочий стол" в системном файле.
- установить безопасность DCOM явно для пользователя службы.
Вы можете найти более подробную информацию здесь
У меня была такая же проблема. Вот решение для того же.
Перейдите к своему менеджеру IIS. → ApplicationPools → AdvancedSettings → Enable32BitApplication → True.
Также дайте полный доступ к вашей папке.
Это может быть полезно для вас.