2011-09-02 42 views
8

Tengo una aplicación escrita en ASP.NET que utiliza DllImport para hacer referencia a un dll escrito en Delphi. En mi máquina de desarrollo de Windows 7 que usa el servidor de desarrollo asp.net, acceder al ddl funciona como se esperaba.Aplicación de error w3wp.exe

Sin embargo en un servidor 2008 que ejecuta Windows Server Producción IIS 7 la DLL devuelve el error "No se puede encontrar" y el siguiente error aparece en el registro de aplicación:

Faulting application w3wp.exe, version 7.0.6002.18005, time stamp 0x49e023cf, faulting 
module ntdll.dll, version 6.0.6002.18005, time stamp 0x49e03821, exception code 
0xc0000374, fault offset 0x000afaf8, process id 0xab8, application start time 
0x01cc6947b1bb081b. 

¿Cómo resolver esto o cómo puede ¿Encuentro una causa más profunda?

+1

En su entorno de desarrollo, ¿intentó ejecutar su aplicación en su IIS local en lugar de utilizar el servidor de desarrollo? Recuerde, el servidor web de desarrollo se ejecuta con sus credenciales, por lo que los permisos de las aplicaciones son diferentes cuando lo ejecuta en IIS. Vea si correr en IIS localmente también provoca el error. – Icarus

+0

Al ejecutar la aplicación localy en IIS también se produce el error. – Sebastiaan

+0

por lo que está progresando ... ahora tiene que ver con algún tipo de permiso o problema de nivel de confianza, ya que IIS en su cuadro local también plantea el problema. – Icarus

Respuesta

3

Sólo una corazonada, pero podría intentar enabling 32bit worker process. Es más compatible que 64 bits y podría ayudar. ¿Es tu servidor local de 32 bits?

%windir%\system32\inetsrv\appcmd set config -section:applicationPools -applicationPoolDefaults.enable32BitAppOnWin64:true 

En caso de que esto pueda ayudar a resolver el problema.

Troubleshooting IIS7 Worker Thread Crashes (w3wp.exe) with a Faulting Module of ntdll.dll

También hay un hilo aquí con una cuestión idéntica. Sugieren que agregar una referencia a kernel32.dll resolvió el problema.

Calling unmanaged code from ASP.NET in IIS7

actualización

Algunas personas informan de que la copia de sus dependencias a Windows\System32\Inetsrv resuelve el problema. Vale la pena intentarlo.

+0

He habilitado los procesos de trabajo de 32 bits pero no tuve éxito, mi Windows 7 es 64bit – Sebastiaan

+1

Valió la pena, 'código de excepción 0xc0000374' significa corrupción de montón. – TheCodeKing

+1

Acabo de leer un poco más sobre esto, parece que mucha gente tiene problemas para llamar al código no administrado en IIS7. – TheCodeKing

Cuestiones relacionadas