Página 1 de 3

Problemas con la CFDLib en Windows Server 2012 y IIS

Publicado: Sab Jun 25, 2022 2:27 pm
por Jesus Castelo
Buenas tardes. Levante un nuevo servidor de paginas web con IIS (8.5) en AWS (Windows Server 2012 R2)

El problema es que ahora mi pagina al llegar el momento de usar la DLL simplemente no continua, no marca error de ningún tipo, checo la bitácora y esta en blanco. Lo que hice fue pasar mi código .net al servidor, instalar el VS2019 y así debugear directamente linea por linea. Ejecuto el código, se carga en IIS Express del VS y desde mi maquina me conecto usando la ip publica. El código empieza a caminar linea por linea y justo cuando va usar la librería, simplemente no pasa nada, el VS sigue en ejecución y no pasa nada. Ya intente dar permisos a todo mundo de todo tipo, has lo que quieras con la dll y la maquina, no me importa nada jajaja y aun así no corre. Alguna idea?

Re: Problemas con la CFDLib en Windows Server 2012 y IIS

Publicado: Sab Jun 25, 2022 2:37 pm
por Dado
No tengo la respuesta, pero lo que te puedo recomendar es lo que varios me han comentado sobre la alternativa para el uso de la DLL

Checa el CFDBatch.exe, es un programa que puedes llamar con linea de comando, hay dos archivos de ejemplo, uno es "CLIC AQUI PARA CREAR Y TIMBRAR CFDI.bat"

Re: Problemas con la CFDLib en Windows Server 2012 y IIS

Publicado: Lun Jun 27, 2022 8:54 am
por Jesus Castelo
gracias por la sugerencia. Solo que ya venia usando la dll desde hace varios años en las mismas circunstancias. Algo me debe estar faltando de configuración en este nuevo servidor. Voy a seguir buscando

Re: Problemas con la CFDLib en Windows Server 2012 y IIS

Publicado: Lun Jun 27, 2022 10:42 am
por Jesus Castelo
Por si alguien esta interesado en el tema y quiere ayudar :roll:

Me di cuenta que puedo usar la dll sin problema desde una aplicación de escritorio, el problema solo pasa en IIS. Obviamente intente copiando la librería desde la aplicación de escritorio a la carpeta del sitio web pero sigue igual, no es problema de que el archivo este dañado. Lo que tengo es una solución en visual studio, ejecuto linea por linea y se perfectamente que justo al hacer uso de la CFDLib es cuando simplemente no hace nada, ni siquiera detiene la aplicación, incluso con el que creo es el método mas simple CFDLibVersion(). Según yo ya tiene todos los permisos necesarios sobre el archivo y sobre la carpeta donde debe leer el ini y guardar el resultado, usuarios IUSR, IIS_IUSRS, el usuario con el que inicio sesión de Windows y otros usuarios mas por si acaso, todos con Full control, pero sigue el problema...

Re: Problemas con la CFDLib en Windows Server 2012 y IIS

Publicado: Lun Jun 27, 2022 12:25 pm
por Jesus Castelo
Como desactivo la generacion de la bitacora? tal vez sea esa la razon de mi problema al usar la dll en iis

Re: Problemas con la CFDLib en Windows Server 2012 y IIS

Publicado: Lun Jun 27, 2022 12:43 pm
por Dado
No se puede desactivar la creacion de la bitacora en la DLL

Adjunto aqui una version DE PRUEBA especial que NO genera bitacora, haz pruebas

Re: Problemas con la CFDLib en Windows Server 2012 y IIS

Publicado: Lun Jun 27, 2022 2:50 pm
por Jesus Castelo
Perfecto, muchas gracias

Re: Problemas con la CFDLib en Windows Server 2012 y IIS

Publicado: Mié Jun 29, 2022 10:11 am
por Jesus Castelo
Hola les informo algunas cosas que note en mis pruebas a ver si alguien me da orientación.

Probando con la versión sin bitácora me pasa lo mismo, simplemente no marca error, ni hay evento en Windows, ni se detiene, nada, no pasa nada. Todo esto en IIS Express que es el que utiliza Visual Studio en debug. Lo mismo pasa con la versión V4.0.220325

Ahora viene lo interesante. Me puse a probar con versiones anteriores y la primera que probé fue la versión V3.3.181215, esta versión tampoco funciona pero al menos me arroja un error cada vez que intento usarla, checando el Event Viewer de Windows me da estos detalles :
Faulting application name: iisexpress.exe, version: 10.0.25095.1000, time stamp: 0x23f4c14d
Faulting module name: ntdll.dll, version: 6.3.9600.20396, time stamp: 0x62998f07
Exception code: 0xc0000374
Fault offset: 0x000e5f44
Faulting process id: 0x1cc0
Faulting application start time: 0x01d88bd0c642fcce
Faulting application path: C:\Program Files (x86)\IIS Express\iisexpress.exe
Faulting module path: C:\Windows\SYSTEM32\ntdll.dll
Report Id: 11002a6a-f7c4-11ec-84a5-06cff859fd63
Faulting package full name:
Faulting package-relative application ID:
Aclaro que la función que intento ejecutar es la que creo es la mas sencilla de todas, CFDLibVersion()

La dll V3.3.181215 funciona sin problemas en una aplicación de escritorio en el mismo equipo y también en IIS 8.5 en el mismo servidor. El error solo pasa en IISExpress.

Ahora porque la obsesión de usar la dll en iisexpress? bueno la razón es que la dll V4.0.220325 me da problemas en IIS 8.5, el servidor en producción (sin información, simplemente se queda eternamente cargando y no pasa nada, sin información en eventos de Windows), y lo que quiero es hacer pruebas directo en el servidor, linea por linea para ver que pasa.

La dll V4.0.220325 también jala bien en una aplicación de escritorio en la misma maquina. Solo falla en IISExpress y IIS 8.5, pero en el caso de esta versión no marca nada, simplemente no hace nada.

Gracias por su tiempo...

Re: Problemas con la CFDLib en Windows Server 2012 y IIS

Publicado: Mié Jun 29, 2022 11:43 am
por Jesus Castelo
Otra pista, la versión V3.3.211111 da los mismos problemas tanto en IIS como en IISExpress

De nuevo, en aplicación de escritorio, no hay problema

Re: Problemas con la CFDLib en Windows Server 2012 y IIS

Publicado: Mié Jun 29, 2022 12:13 pm
por Jesus Castelo
Actualizo. Ya pude hacer jalar la V3.3.181215, el problema era que de tantas pruebas, en mi código había cambiado la manera de invocar la dll, la manera en que me daba error era esta:

Código: Seleccionar todo

[DllImport("CFDLib.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall, EntryPoint = "CFDLibVersion")]
private static extern string CFDLibVersion();
Pero si la invoco de esta manera, desde mi codigo en visual studio, ejecutando la web en IISExpress, ahora tampoco me marca error y todo fluye sin problemas:

Código: Seleccionar todo

[DllImport("CFDLib.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
private static extern IntPtr CFDLibVersion();
Entonces. La V3.3.181215 jala bien en todos lados, escritorio, IIS y IISExpress

Pero las versiones V3.3.211111 y V4.0.220325 solo jalan en escritorio. En IIS y IISExpress se quedan sin hacer nada, ni mensaje ni nada