System.Runtime.InteropServices.COMException(0x800A03EC)
Microsoft.Office.Interop.Excel.WorkbookClass.SaveAs()
работает отлично на сервере Windows 2003, а также на XP, но не на сервере Windows 2008. Я скопировал его, поскольку он дал все Dll и разрешения
Я также пробовал все решения, заданные в сети, такие как настройки культуры и разрешения DCOM.
Получение следующей ошибки:
System.Runtime.InteropServices.COMException(0x800A03EC): Исключение от HRESULT: 0x800A03EC
at
Microsoft.Office.Interop.Excel.WorkbookClass.SaveAs(имя файла объекта, Object FileFormat, Object Password, Object WriteResPassword, Object ReadOnlyRecommended, Object CreateBackup, XlSaveAsAccessMode AccessMode, Object ConflictResolution, Object AddToMru, Object TextCodepage, Object TextVisualLayout, Object Local)
Пожалуйста, помогите..!
Ответы
Ответ 1
Найден ответ.......!!!!!!!
Официально Microsoft Office 2003 Interop не поддерживается Microsoft Windows на сервере 2008 года.
Но после множества перестановок и комбинаций с кодом и поиском мы сталкивались с одним решением, которое работает для нашего сценария.
Решение заключается в подключении разницы между тем, как Windows 2003 и 2008 поддерживает структуру своих папок, поскольку Office Interop зависит от папки рабочего стола для открытия файла/сохранения. В системе 2003 года находится папка рабочего стола под системным профилем, отсутствующая в 2008 году.
Итак, когда мы создаем эту папку в 2008 году под соответствующей иерархией, как указано ниже; офис Interop может сохранить файл по мере необходимости. Эта папка рабочего стола должна быть создана под
C:\Windows\System32\Config\systemprofile
и
C:\Windows\SysWOW64\Config\systemprofile
Это сработало для меня...
Также проверьте, установлен ли .NET 1.1, потому что он необходим Interop и предустановлен Windows Server 2008
Или вы также можете использовать метод SaveCopyas() ist просто взять onargument как строку имени файла)
Спасибо, ребята..!
Ответ 2
Попробуй, как это сработало для меня...
- Перейдите в "Пуск" → "Запустить" и введите "dcomcnfg"
- Это откроет окно служб компонентов, разверните "Корень консоли" → "Компьютеры" → "Конфигурация DCOM"
- Найдите "Приложение Microsoft Excel" в списке компонентов.
- Щелкните правой кнопкой мыши на записи и выберите "Свойства"
- Перейдите на вкладку "Идентификация" в диалоговом окне свойств.
- Выберите "Интерактивный пользователь".
любезно предоставлено Последний абзац, упомянутый здесь
Ответ 3
Некоторый поиск в Google показывает, что потенциально у вас есть поврежденный файл:
http://bitterolives.blogspot.com/2009/03/excel-interop-comexception-hresult.html
и что вы можете сказать Excel, чтобы открыть его в любом случае с параметром CorruptLoad, с чем-то вроде...
Workbook workbook = excelApplicationObject.Workbooks.Open(path, CorruptLoad: true);
Ответ 4
Я видел эту ошибку при попытке сохранить файл excel. Код работал нормально, когда я использовал MS Office 2003, но после обновления до MS Office 2007 я начал это видеть. Это произойдет в любое время, когда я попытаюсь сохранить файл Excel на сервер или удаленную часть.
Мое решение, хотя и рудиментарное, хорошо работало. Я только что программа сохранила файл локально, как и для диска C: \. Затем используйте метод "System.IO.File.Copy(File, Destination, Overwrite)", чтобы переместить файл на сервер. Затем вы можете удалить файл на диске C: \.
Работает отлично и просто. Но, по общему признанию, это не самый элегантный подход.
Надеюсь, это поможет! У меня была проблема с поиском решений в Интернете до тех пор, пока эта идея не появилась у меня в голове.
Ответ 5
Это проблема разрешения при запуске IIS
У меня была эта проблема, и я решил это таким образом.
Я пошел по папкам
C:\Windows\System32\config\SystemProfile
и
C:\Windows\SysWOW64\config\SystemProfile
являются защищенными системными папками, они обычно имеют блокировку.
Щелкните правой кнопкой мыши- > Защита карты- > Нажмите "Редактировать- > Добавить не существующего пользователя" Автоответчик "и назначьте разрешения.
В этот момент все решено, если у вас все еще есть проблемы, попробуйте предоставить все разрешения "Каждому"
Ответ 6
Для всех тех, кто все еще испытывает эту проблему, я просто потратил 2 дня на поиски кровавой вещи.
Я получал ту же ошибку, когда в наборе данных не было строк.
Кажется очевидным, но сообщение об ошибке очень неясно, отсюда 2 дня.
Ответ 7
В моем случае проблема заключалась в стилизации заголовка как "Заголовок 1", но этот стиль не существовал в Word, и я получаю сообщение об ошибке, потому что это не был Office на английском языке.