it-swarm.com.ru

как решить Исключение: Вызов был отклонен вызываемым абонентом. (Исключение из HRESULT: 0x80010001 (RPC_E_CALL_REJECTED)) в C #?

Я написал код C # в консольном приложении, чтобы открыть два экземпляра и скопировать и вставить данные из одного Excel в другой Excel. Это работало хорошо, пока видимость Excel назначения не была верна. Но мне нужно скрыть Excel во время выполнения. Поэтому я изменил видимость на false. Подобно,

  _destExcelApp = new Excel.ApplicationClass();
  _destExcelApp.Visible = false;

Теперь это показывает исключение, как 

Вызов был отклонен вызываемым абонентом. (Исключение из HRESULT: 0x80010001 (RPC_E_CALL_REJECTED))

Как решить это?

11
Manoj Nayak

Я столкнулся с той же самой ошибкой, возникающей при развертывании приложения на компьютере без полностью активированной и лицензионной установки Excel. Я часами пытался диагностировать проблему. Убедитесь, что вы проверили установки Office, чтобы убедиться, что они завершены.

17
Crash5998

Я столкнулся с той же ошибкой, и многие предложенные решения не работали для меня .. У меня было приложение, работающее в Windows 8, и я обнаружил, что проблема в том, что Excel всегда просил выбрать приложение по умолчанию для расширений "xlsx" . При запуске приложения диалоговое окно не появлялось, просто отображалась ошибка.

Я решил проблему, перейдя в Панель управления> Программы> Программы по умолчанию и установив Microsoft Office Excel 2016 в качестве программы по умолчанию для файлов xlsx.

5
Alielson Piffer

Я столкнулся с этой проблемой с Word, и мое решение было удалить OpenOffice. Я не уверен, есть ли другое решение, но, скорее всего, это связано с dll и конфликтом с обработчиком файлов по умолчанию для конкретных файлов, которые вы генерируете программно. 

3
amadib

Убедитесь, что MS Word/Excel не показывает диалоговое окно, требующее ответа.

Я установил точку останова на линии, которая вызвала сбой, а затем установил для .Visible значение true в PowerShell, чтобы найти это:

$Word.Visible = $true

 MS Word Set default program Prompt

После того, как я нажал «Да» и обновил настройки, после того, как я повторно запустил свои COM-взаимодействия в сценарии, они завершились успешно.

2
CJBS

Я столкнулся с этой ошибкой сегодня в Excel 2016.

Мы обнаружили, что на компьютере с этой проблемой были активированы некоторые надстройки.

Странно, что одному компьютеру понадобилось много времени, чтобы запустить Excel. после деактивации надстроек наша программа работала нормально.

Как ни странно, мы не могли воспроизвести это на наших компьютерах.

1
Martin H.

Копируете ли вы диапазон информации из одного документа в другой, или вы перемещаетесь между двумя документами, копируя ячейку за ячейкой? Excel является однопоточным, поэтому, если вы идете туда-сюда, это может вызвать эту проблему. 

1
Duphorn

Столкнулся с этой проблемой на моей машине. Excel полностью активирован и уже является программой по умолчанию для файлов .xlsx. Я загружал шаблон рабочей книги, созданный с помощью сводных таблиц, и с помощью скрипта обновлял данные в таблицах. Оказывается, что если для сводных таблиц установлено значение «Обновить данные при открытии файла» в разделе «Параметры сводной таблицы»> «Данные», это вызывает проблемы с многопоточностью.
Отключение обновления при открытии решило проблему.

0
Ghostnine22

Я решил это поведение с помощью этого вопроса:

Странное поведение "Call был отклонен вызываемым абонентом". исключение с Excel

Проблема была просто в том, что Workbook.Open не закончился, когда я дал команду Worksheet.SaveAs. Так что иногда сценарий будет работать, иногда нет.

Я просто добавил паузу в сценарии после Workbook.Open, и это сработало. Я продолжал искать свойство Ready, которое позволило мне делать именно то, что я хотел:

    $Excel = New-Object -ComObject "Excel.Application" -ea Stop
    $wb = $Excel.Workbooks.Open($workbook)
    $sheet = $wb.Sheets("List")
    while (-not $Excel.Ready) {
        sleep 1
    }
    $sheet.SaveAs($csvpath,6)

Так что в моем случае это не имело никакого отношения к неактивированным или поврежденным установкам Excel.

0
Joost