Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   Ejecutar una aplicación de consola C# desde PHP (https://www.clubdelphi.com/foros/showthread.php?t=93399)

cd.rafael 11-09-2018 21:13:06

Ejecutar una aplicación de consola C# desde PHP
 
Cordial saludo,

Por favor su colaboración con el siguiente tema:

Necesito ejecutar una aplicación de consola desarrollada en C#, desde PHP 7.1 (IIS 10). El tema es que me generaba el siguiente error:

Cita:

System.Runtime.InteropServices.COMException (0x800A03EC): Microsoft Office Excel cannot access the file


Revisando en Google, pude ver que era porque el usuario con el que se ejecuta el llamado desde PHP no tiene permisos, así que procedí a darle los respectivos permisos (IIS, INTERACTIVE, NETWORK SERVICE). También di los permisos sobre los DCOM y cree una carpeta Desktop en SysWOW64.

Todo lo anterior basado en el Dr. Google, pero aun sigue sin funcionar. Ya no me sale el mismo error, ahora es el siguiente:

Cita:

System.Runtime.InteropServices.COMException (0x80010105): The server threw an exception. (Exception from HRESULT: 0x80010105 (RPC_E_SERVERFAULT))


Además me genera un poco de inquietud el dar tantos permisos, ya que no sé si da paso a vulnerabilidades en el servidor.

Agradezco de antemano toda la ayuda posible.

dec 12-09-2018 10:19:30

Hola a todos,

¿Tal vez el primer error no fuese un problema de permisos? Quiero decir, ¿puedes poner aquí el código que usas para llamar al programa? ¿Y qué se supone que ha de hacer ese programa? ¿Le pasas algún argumento? Si fuese así y se tratase de la ruta del archivo, ¿es una ruta absoluta? ¿seguro que existe el archivo en cuestión en la ruta indicada?

cd.rafael 12-09-2018 17:19:51

Estimado dec,

Gracias por responder.

Respecto a lo que planteas:

1. Este es el código que utilizo en PHP para ejecutar la aplicación:

Código PHP:

$Comando 'NombreEjecutable.exe ' $P1 ' ' $P2 ' ' $P3 ' ' $P4 ' ' $P5 ' ' $P6 ' ' $P7 ' ' $P8 ' ' $P9 ' ' $P10;
$Resultado exec($Comando $Salida); 

2. El programa genera una copia de una plantilla predefinida en Excel y le actualiza los datos (a la copia), por tal razón utiliza la referencia:
Cita:

Microsoft.Office.Interop.Excel
3. El ejecutable está en el mismo directorio donde radica el archivo PHP y he realizado diferentes pruebas con otros ejecutables que desarrollé en C#, los cuales han funcionado bien. Los mensajes de error que coloqué en el primer mensaje de este hilo, fueron los que generó la aplicación en C# cuando fue invocado por PHP. Si ejecuto la aplicación, con los mismos parámetros, a través de la ventana de comandos de Windows, la aplicación no genera errores.

Muchas gracias por tu atención.


La franja horaria es GMT +2. Ahora son las 01:41:35.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi