Подтвердить что ты не робот

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)

Пожалуйста, помогите..!

4b9b3361

Ответ 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 на английском языке.