Saltar al contenido

cómo resolver Excepción: La llamada fue rechazada por el destinatario. (Excepción de HRESULT: 0x80010001 (RPC_E_CALL_REJECTED)) en C#?

Posteriormente a consultar expertos en este tema, programadores de diversas áreas y maestros hemos dado con la solución al dilema y la dejamos plasmada en esta publicación.

Solución:

Me encontré con este mismo error cuando implementé mi aplicación en una máquina sin una instalación de Excel completamente activada y con licencia. Pasé horas tratando de diagnosticar el problema. Asegúrese de verificar las instalaciones de Office para asegurarse de que estén completas.

Resolví este comportamiento con la ayuda de esta pregunta:

Comportamiento extraño de “La llamada fue rechazada por el destinatario”. excepción con Excel

El problema era simplemente que el Workbook.Open no había terminado cuando le di un Worksheet.SaveAs mando. Entonces, a veces, el guión funcionaba, a veces no.

Simplemente agregué una pausa en el guión después Workbook.Open Y funcionó. Fui a buscar una propiedad Readyque me permitió hacer exactamente lo que quería:

    $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)

Entonces, en mi caso, no tuvo nada que ver con instalaciones de Excel no activadas o dañadas.

Asegúrese de que MS Word/Excel no muestre un cuadro de diálogo que necesite una respuesta.

Establecí un punto de interrupción en la línea que causó la falla, luego configuré .Visible para true en PowerShell, para encontrar esto:

$word.Visible = $true

MS Word Establecer mensaje de programa predeterminado

Después de hacer clic en ‘Sí’ y actualizar la configuración, después de volver a ejecutar mis interacciones COM con secuencias de comandos, tuvieron éxito.

Reseñas y puntuaciones del artículo

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *