System.Web.HttpException en Internet Information Services

Este artículo le ayuda a resolver lo que ocurre cuando una aplicación se ejecuta en modo de canalización System.Web.HttpException integrada y proporciona una resolución.

Versión del producto original:   Internet Information Services 7.0 y versiones posteriores
Número KB original:   2605401

Síntomas

Imagine la siguiente situación:

  • Ejecute una aplicación web configurada para usar la canalización integrada en un servidor web Microsoft Internet Information Services (IIS) 7.0 o versiones posteriores.
  • La aplicación usa un filtro ISAPI registrado para el SF_NOTIFY_AUTHENTICATION evento.
  • Global.asax de la aplicación implementa el Application_BeginRequest evento.

En estas condiciones, puede producirse esta excepción:

System.Web.HttpException: esta variable de servidor no se puede modificar durante la ejecución de la solicitud.

Causa

Este comportamiento es una característica del diseño de la aplicación.

Cuando IIS llama al filtro ISAPI para el SF_NOTIFY_AUTHENTICATION evento, actualiza la AUTH_USER variable de servidor. Dado que la aplicación está configurada para usar la canalización integrada, ASP.NET busca cambios en las variables de servidor. AUTH_USERes una de las variables que no se espera que cambien y, por lo tanto, ASP.NET la excepción anterior.

Esta excepción no se producirá si el grupo de aplicaciones se ejecuta en modo clásico en lugar del modo canalización integrada.

Solución

Cualquiera de los métodos siguientes evita esta excepción:

  1. Configure el grupo de aplicaciones para que se ejecute en modo clásico en lugar del modo canalización integrada.
  2. Use módulos http nativos o administrados para controlar las notificaciones de autenticación.

Más información

Para obtener más información, vea Develop a Native C\C++ Module for IIS 7.0.