Forum Discussion
xjavierb
Oct 09, 2024Copper Contributor
How to fix Error System.Web.HttpApplication does not implement IHttpModule in IIS
Hi, I need some help with error "Error System.Web.HttpApplication does not implement IHttpModule" with some steps for diagnose cause this error.
Note: MY_SERVER has a single web site called "SitioNuevoVacio2"
Context
I have a web site called "SitioNuevoVacio2" this contains a single html file called "index.html" with following source code...
<html>
<body>
-- empty web site --
</body>
</html>
when I browse "SitioNuevoVacio2", I get these error messages:
"
Server Error in '/' Application.
________________________________________
System.Web.HttpApplication does not implement IHttpModule.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Configuration.ConfigurationErrorsException: System.Web.HttpApplication does not implement IHttpModule.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[ConfigurationErrorsException: System.Web.HttpApplication does not implement IHttpModule.]
System.Web.Configuration.Common.ModulesEntry..ctor(String name, String typeName, String propertyName, ConfigurationElement configElement) +11874417
System.Web.HttpApplication.BuildIntegratedModuleCollection(List`1 moduleList) +221
System.Web.HttpApplication.GetModuleCollection(IntPtr appContext) +1103
System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +122
System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +173
System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +255
System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +347
[HttpException (0x80004005): System.Web.HttpApplication does not implement IHttpModule.]
System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +552
System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +122
System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +732
________________________________________
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.8.9195.0
"
And Event viewer has this warning:
"
Event code: 3008
Event message: A configuration error has occurred.
Event time: 9/10/2024 8:56:20 a. m.
Event time (UTC): 9/10/2024 1:56:20 p. m.
Event ID: 5bffbb78122e470a85ffaa557e38532d
Event sequence: 1
Event occurrence: 1
Event detail code: 0
Application information:
Application domain: /LM/W3SVC/3/ROOT-2-133729557801407411
Trust level: Full
Application Virtual Path: /
Application Path: C:\inetpub\wwwroot\SitioNuevoVacio2\
Machine name: MY_SERVER
Process information:
Process ID: 9424
Process name: w3wp.exe
Account name: IIS APPPOOL\DefaultAppPool
Exception information:
Exception type: ConfigurationErrorsException
Exception message: System.Web.HttpApplication does not implement IHttpModule.
at System.Web.Configuration.Common.ModulesEntry..ctor(String name, String typeName, String propertyName, ConfigurationElement configElement)
at System.Web.HttpApplication.BuildIntegratedModuleCollection(List`1 moduleList)
at System.Web.HttpApplication.GetModuleCollection(IntPtr appContext)
at System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers)
at System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context)
at System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context)
at System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext)
Request information:
Request URL: http://localhost:8085/
Request path: /
User host address: ::1
User:
Is authenticated: False
Authentication Type:
Thread account name: MY_SERVER\SomeUser
Thread information:
Thread ID: 12
Thread account name: MY_SERVER\SomeUser
Is impersonating: False
Stack trace: at System.Web.Configuration.Common.ModulesEntry..ctor(String name, String typeName, String propertyName, ConfigurationElement configElement)
at System.Web.HttpApplication.BuildIntegratedModuleCollection(List`1 moduleList)
at System.Web.HttpApplication.GetModuleCollection(IntPtr appContext)
at System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers)
at System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context)
at System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context)
at System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext)
"
I searched in the web and some post suggest check your source code in these files:
- web.config
- global.asax
and find any reference to custom HttpModule, but "SitioNuevoVacio2" only has a single page. I don't know what to do, any suggestions?
Technical Specs
- SO: windows server 2022 standard 21H2
- IIS: Version 10.0.20438.1
- .NET Framework Version:4.0.30319
- ASP.NET Version:4.8.9195.0
TRY
1. List of 12 Handlers manually created...
1. PageHandlerFactory-ISAPI-4.0_32bit
• Request path: *.aspx
• Type: C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\aspnet_isapi.dll
• Name: PageHandlerFactory-ISAPI-4.0_32bit
• Module: IsapiModule
• Script Processor: C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\aspnet_isapi.dll
• Entry Type: Local
2. PageHandlerFactory-ISAPI-4.0_64bit
• Request path: *.aspx
• Type: C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\aspnet_isapi.dll
• Name: PageHandlerFactory-ISAPI-4.0_64bit
• Module: IsapiModule
• Script Processor: C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\aspnet_isapi.dll
• Entry Type: Local
3. PageHandlerFactory-Integrated-4.0
• Request path: *.aspx
• Type: System.Web.UI.PageHandlerFactory
• Name: PageHandlerFactory-Integrated-4.0
• Module: ManagedPipelineHandler
• Entry Type: Local
4. SimpleHandlerFactory-ISAPI-4.0_32bit
• Request path: *.ashx
• Type: C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\aspnet_isapi.dll
• Name: SimpleHandlerFactory-ISAPI-4.0_32bit
• Module: IsapiModule
• Script Processor: C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\aspnet_isapi.dll
• Entry Type: Local
5. SimpleHandlerFactory-ISAPI-4.0_64bit
• Request path: *.ashx
• Type: C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\aspnet_isapi.dll
• Name: SimpleHandlerFactory-ISAPI-4.0_64bit
• Module: IsapiModule
• Script Processor: C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\aspnet_isapi.dll
• Entry Type: Local
6. SimpleHandlerFactory-Integrated-4.0
• Request path: *.ashx
• Type: System.Web.UI.SimpleHandlerFactory
• Name: SimpleHandlerFactory-Integrated-4.0
• Module: ManagedPipelineHandler
• Entry Type: Local
7. WebServiceHandlerFactory-ISAPI-4.0_32bit
• Request path: *.asmx
• Type: C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\aspnet_isapi.dll
• Name: WebServiceHandlerFactory-ISAPI-4.0_32bit
• Module: IsapiModule
• Script Processor: C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\aspnet_isapi.dll
• Entry Type: Local
8. WebServiceHandlerFactory-ISAPI-4.0_64bit
• Request path: *.asmx
• Type: C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\aspnet_isapi.dll
• Name: WebServiceHandlerFactory-ISAPI-4.0_64bit
• Module: IsapiModule
• Script Processor: C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\aspnet_isapi.dll
• Entry Type: Local
9. WebServiceHandlerFactory-Integrated-4.0
• Request path: *.asmx
• Type: System.Web.Services.Protocols.WebServiceHandlerFactory
• Name: WebServiceHandlerFactory-Integrated-4.0
• Module: ManagedPipelineHandler
• Entry Type: Local
10. ScriptHandlerFactory-ISAPI-4.0_32bit
• Request path: *.axd
• Type: C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\aspnet_isapi.dll
• Name: ScriptHandlerFactory-ISAPI-4.0_32bit
• Module: IsapiModule
• Script Processor: C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\aspnet_isapi.dll
• Entry Type: Local
11. ScriptHandlerFactory-ISAPI-4.0_64bit
• Request path: *.axd
• Type: C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\aspnet_isapi.dll
• Name: ScriptHandlerFactory-ISAPI-4.0_64bit
• Module: IsapiModule
• Script Processor: C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\aspnet_isapi.dll
• Entry Type: Local
12. ScriptHandlerFactory-Integrated-4.0
• Request path: *.axd
• Type: System.Web.Handlers.ScriptHandlerFactory
• Name: ScriptHandlerFactory-Integrated-4.0
• Module: ManagedPipelineHandler
• Entry Type: Local
2. Check, download, install, update and reboot last windows updates.
3. Compare Handlers and Modules between IIS developer server with MY_SERVER
note: IIS developer server works fine when I publish "SitioNuevoVacio2"
EXPECT
After made those verifications and changes IIS works fine and see index.html "SitioNuevoVacio2"
- DeletedOct 16, 2024Existen varios tipos de errores que los usuarios pueden encontrar al visitar o navegar por un sitio web. Si bien es frustrante para los visitantes, es aterrador para el administrador y los propietarios del sitio web. Uno de los errores más comunes es el error HTTP 404.3: no encontrado.
La razón principal detrás de este error es la inexistencia de mapeo MIME o controladores de script en el servidor web IIS. En este artículo, aprenda a solucionar este error.
¿Qué significa el error HTTP 404.3?
Un error HTTP ocurre cuando el servidor no entrega la página web solicitada. El error HTTP viene con un código de estado, que informa qué salió mal exactamente.
Los errores 404 indican que se desconoce el motivo de la no entrega de la página web. 404.3 es un subcódigo de estado y arroja más luz sobre las razones. Cuando recibe el error 404.3, debe saber que hay una restricción MIME. Puede confirmarlo revisando el mensaje de error, que dice algo como esto:
Error HTTP 404.3 – No encontrado
La página que está solicitando no se puede servir debido a la configuración de la extensión. Si la página es un script, agregue un controlador. Si el archivo se debe descargar, agregue un mapa MIME
Como puede ver, la página solicitada es un script y falta el controlador necesario para ello. Si las imágenes o los videos no se cargan, entonces el tipo MIME requerido no está disponible. El error también puede aparecer si la característica ASP.NET no está habilitada. El error
generalmente ocurre entre sitios web alojados en un servidor web Windows e IIS.
Solucionar el error
Hay algunas formas de solucionar este error. Aquí hay tres soluciones recomendadas para probar:
Instalar la función ASP.NET
Una de las razones del error es que la función ASP.NET no está habilitada. Esto también significa que ASP.NET no está instalado. Por lo tanto, instálelo primero. Estos son los pasos a seguir:
Vaya a Inicio >> Herramientas administrativas >> Administrador del servidor
Busque y haga clic en Agregar roles y funciones
Seleccione las características y luego expanda .NET Framework
Seleccione el marco ASP.NET requerido. Una vez que seleccione los filtros ISAPI, se seleccionarán automáticamente otros parámetros como las extensiones ISAPI y la extensibilidad de .NET.
A continuación, ejecute los siguientes comandos en la arquitectura de Windows:
Código:
◦ %windir%\Microsoft.NET\Framework\v4.0(framework version)\aspnet_regiis.exe -ir (For 32bit (x86) Windows)
◦ %windir%\Microsoft.NET\Framework64\v4.0(framework version)\aspnet_regiis.exe -ir (For 64bit (x64) Windows)
Por último, verifique que el grupo de aplicaciones del dominio esté utilizando el marco.
Agregar un controlador de script
La mayoría de los sitios web utilizan PHP y .NET para funcionar. El servidor web debe tener el controlador de scripts necesario para manejar estos lenguajes. De lo contrario, seguramente verá el error 404.3. Estos son los pasos que debe seguir:
Administrador de servicios de información de Internet (IIS) abierto
Ir a Inicio > Componentes del servidor
Seleccionar mapeo de controlador
En el panel Acción , busque y haga clic en Agregar asignación de módulo
Cuando se abra el cuadro de diálogo, proporcione los siguientes detalles:
Código:
Requested path: *.php
Module: FastCgiModule
Executable: “C:[Path to PHP installation]\php-cgi.exe”
Name: PHP via FastCGI
Haga clic en Aceptar para cerrar el cuadro de diálogo.
Consulta la página de información de PHP. Debería incluir los detalles del módulo FastCGI.
Debería solucionar el error HTTP 404.3.
Seleccionar tipo MIME
La tercera forma de solucionar este error es seleccionar el tipo MIME o Multipurpose Internet Mail Extensions correcto. La función principal de MIME es identificar el tipo de contenido que se envía al navegador.
Es posible que el servidor IIS ya haya instalado el tipo MIME en su servidor de forma predeterminada para archivos como HTML y jpeg. Pero para los tipos de contenido más nuevos, es posible que el tipo MIME no se haya instalado. Siga estos pasos para hacerlo:
Abra el Administrador de IIS
En el panel Conexiones , debe seleccionar el sitio/directorio/aplicación donde necesita el tipo MIME requerido
A continuación, en el panel Inicio, haga doble clic en la opción Tipos MIME . Aparecerá una lista con todos los tipos MIME predeterminados.
Haga clic en Agregar para agregar los tipos MIME requeridos a la lista
Ahora, reinicie el IIS. El problema debería haberse resuelto ahora que existe un tipo MIME para manejar el tipo de script.
Así es como se soluciona el error HTTP 404.3. Para obtener más ayuda, comuníquese con el equipo de soporte.
- Deletedun ejemplo de cómo podrías configurar tu archivo `web.config` para evitar el error "System.Web.HttpApplication no implementa IHttpModule": ```xml <configuration> <system.webServer> <modules> <remove name="FormsAuthentication"/> <add name="YourCustomModule" type="Namespace.YourCustomModule, AssemblyName"/> </modules> </system.webServer> </configuration> ``` Y aquí tienes un ejemplo de un módulo HTTP personalizado: ```csharp using System.Web; namespace Namespace { public class YourCustomModule : IHttpModule { public void Init(HttpApplication context) { context.BeginRequest += new EventHandler(OnBeginRequest); } private void OnBeginRequest(object sender, EventArgs e) { // Lógica personalizada aquí } public void Dispose() { // Limpieza aquí } } } ``` En este ejemplo: - **<remove name="FormsAuthentication"/>** elimina el módulo de autenticación de formularios si no es necesario. - **<add name="YourCustomModule" type="Namespace.YourCustomModule, AssemblyName"/>** agrega tu módulo personalizado. Reemplaza `Namespace.YourCustomModule` con el espacio de nombres y el nombre de tu clase, y `AssemblyName` con el nombre de tu ensamblado. Esto debería ayudarte a configurar tu aplicación correctamente. Ojalá te sirvan los ejemplos
- xjavierbCopper Contributor
Deleted
Hello Juan Manuel
Thank you so much for taking the time to read my case, I have followed the instructions published in the two posts without any advance, the same error message persists despite having investigated the links suggested. The solution I tried was to completely remove internet from server information and reinstall it, despite having made those changes on the server I get another error message
The solution I tried was to completely remove internet from server information and reinstall it, despite having made those changes on the server I get another error message.
Among my plans is not to upgrade from asp.net classic to asp.net core.
This error is strange to me because I have the development server some features installed while on the production server alone there are fewer features installed, I would think that the basic solution is to activate what is needed, however I am not sure what should activate Windows server.
- DeletedExisten varios tipos de errores que los usuarios pueden encontrar al visitar o navegar por un sitio web. Si bien es frustrante para los visitantes, es aterrador para el administrador y los propietarios del sitio web. Uno de los errores más comunes es el error HTTP 404.3: no encontrado.
La razón principal detrás de este error es la inexistencia de mapeo MIME o controladores de script en el servidor web IIS. En este artículo, aprenda a solucionar este error.
¿Qué significa el error HTTP 404.3?
Un error HTTP ocurre cuando el servidor no entrega la página web solicitada. El error HTTP viene con un código de estado, que informa qué salió mal exactamente.
Los errores 404 indican que se desconoce el motivo de la no entrega de la página web. 404.3 es un subcódigo de estado y arroja más luz sobre las razones. Cuando recibe el error 404.3, debe saber que hay una restricción MIME. Puede confirmarlo revisando el mensaje de error, que dice algo como esto:
Error HTTP 404.3 – No encontrado
La página que está solicitando no se puede servir debido a la configuración de la extensión. Si la página es un script, agregue un controlador. Si el archivo se debe descargar, agregue un mapa MIME
Como puede ver, la página solicitada es un script y falta el controlador necesario para ello. Si las imágenes o los videos no se cargan, entonces el tipo MIME requerido no está disponible. El error también puede aparecer si la característica ASP.NET no está habilitada. El error
generalmente ocurre entre sitios web alojados en un servidor web Windows e IIS.
Solucionar el error
Hay algunas formas de solucionar este error. Aquí hay tres soluciones recomendadas para probar:
Instalar la función ASP.NET
Una de las razones del error es que la función ASP.NET no está habilitada. Esto también significa que ASP.NET no está instalado. Por lo tanto, instálelo primero. Estos son los pasos a seguir:
Vaya a Inicio >> Herramientas administrativas >> Administrador del servidor
Busque y haga clic en Agregar roles y funciones
Seleccione las características y luego expanda .NET Framework
Seleccione el marco ASP.NET requerido. Una vez que seleccione los filtros ISAPI, se seleccionarán automáticamente otros parámetros como las extensiones ISAPI y la extensibilidad de .NET.
A continuación, ejecute los siguientes comandos en la arquitectura de Windows:
Código:
◦ %windir%\Microsoft.NET\Framework\v4.0(framework version)\aspnet_regiis.exe -ir (For 32bit (x86) Windows)
◦ %windir%\Microsoft.NET\Framework64\v4.0(framework version)\aspnet_regiis.exe -ir (For 64bit (x64) Windows)
Por último, verifique que el grupo de aplicaciones del dominio esté utilizando el marco.
Agregar un controlador de script
La mayoría de los sitios web utilizan PHP y .NET para funcionar. El servidor web debe tener el controlador de scripts necesario para manejar estos lenguajes. De lo contrario, seguramente verá el error 404.3. Estos son los pasos que debe seguir:
Administrador de servicios de información de Internet (IIS) abierto
Ir a Inicio > Componentes del servidor
Seleccionar mapeo de controlador
En el panel Acción , busque y haga clic en Agregar asignación de módulo
Cuando se abra el cuadro de diálogo, proporcione los siguientes detalles:
Código:
Requested path: *.php
Module: FastCgiModule
Executable: “C:[Path to PHP installation]\php-cgi.exe”
Name: PHP via FastCGI
Haga clic en Aceptar para cerrar el cuadro de diálogo.
Consulta la página de información de PHP. Debería incluir los detalles del módulo FastCGI.
Debería solucionar el error HTTP 404.3.
Seleccionar tipo MIME
La tercera forma de solucionar este error es seleccionar el tipo MIME o Multipurpose Internet Mail Extensions correcto. La función principal de MIME es identificar el tipo de contenido que se envía al navegador.
Es posible que el servidor IIS ya haya instalado el tipo MIME en su servidor de forma predeterminada para archivos como HTML y jpeg. Pero para los tipos de contenido más nuevos, es posible que el tipo MIME no se haya instalado. Siga estos pasos para hacerlo:
Abra el Administrador de IIS
En el panel Conexiones , debe seleccionar el sitio/directorio/aplicación donde necesita el tipo MIME requerido
A continuación, en el panel Inicio, haga doble clic en la opción Tipos MIME . Aparecerá una lista con todos los tipos MIME predeterminados.
Haga clic en Agregar para agregar los tipos MIME requeridos a la lista
Ahora, reinicie el IIS. El problema debería haberse resuelto ahora que existe un tipo MIME para manejar el tipo de script.
Así es como se soluciona el error HTTP 404.3. Para obtener más ayuda, comuníquese con el equipo de soporte.
- DeletedAquí tienes algunos pasos para diagnosticar y resolver este error: 1. **Revisa el archivo web.config**: Asegúrate de que los módulos HTTP estén correctamente configurados en tu archivo `web.config`. Verifica que las etiquetas `<httpModules>` y `<modules>` estén presentes y correctamente configuradas[](https://learn.microsoft.com/es-es/aspnet/core/migration/http-modules?view=aspnetcore-8.0&citationMarker= "1"). 2. **Verifica la implementación de IHttpModule**: Asegúrate de que cualquier clase que implemente `IHttpModule` esté correctamente definida y registrada en el archivo `web.config`[](https://stackoverflow.com/questions/6800447/is-there-any-reason-for-a-web-page-aspx-to-implement-the-ihttpmodule "2"). 3. **Revisa el orden de los módulos**: Si tienes varios módulos HTTP, verifica el orden en que están configurados en el archivo `web.config`. El orden puede afectar el comportamiento de la aplicación[](https://learn.microsoft.com/es-es/aspnet/core/migration/http-modules?view=aspnetcore-8.0&citationMarker= "1"). 4. **Actualiza a ASP.NET Core**: Si es posible, considera migrar tu aplicación a ASP.NET Core, ya que los módulos HTTP de ASP.NET Core se manejan de manera diferente y pueden ofrecer una solución más moderna y eficiente[](https://learn.microsoft.com/es-es/aspnet/core/migration/http-modules?view=aspnetcore-8.0&citationMarker= "1"). 5. **Consulta la documentación**: Revisa la documentación oficial de Microsoft sobre la migración de controladores y módulos HTTP a middleware de ASP.NET Core para obtener más detalles y ejemplos[](https://learn.microsoft.com/es-es/aspnet/core/migration/http-modules?view=aspnetcore-8.0&citationMarker= "1"). Ojalá te sirva de algo la información que busque