2009-08-26 18 views
12

¿Es posible deshabilitar la validación de solicitud de HttpHandlers?¿Cómo se puede deshabilitar la validación de solicitudes para HttpHandlers?

Un poco de historia - Tengo una aplicación web ASP.NET mediante un HttpHandler para recibir la respuesta de pago WorldPay. Los registros de IIS muestran que el controlador se está llamando correctamente desde WorldPay, pero el código dentro del controlador nunca se llama.

Si creo una página ASPX física y configuro ValidateRequest = false en el encabezado y coloco el mismo código en el método Page_Load, el código se invoca sin ningún problema.

Esto soluciona el problema, aunque prefiero seguir usando un HttpHandler para esto, ya que es más adecuado para este tipo de funcionalidad, en lugar de tener una página ASPX vacía, aunque esto depende de poder deshabilitar la solicitud validación.

La aplicación web está utilizando ASP.NET 2.0 y el servidor es IIS6.

+0

Tengo exactamente el mismo problema. Necesito desactivar Validación de solicitud para mi controlador de Http en IIS7. – krisdyson

Respuesta

-2

En IIS6 simplemente puede añadir validate="false" en el registro web.config.

<add path="handler.axd" type="Foo.Bar.MyHandler" verb="*" validate="false" /> 

Si alguien puede arrojar algo de luz sobre la forma de lograr esto en el modo integrado de IIS7, sería muy útil también.

+2

El atributo "validar" en el elemento no tiene nada que ver con la validación de entrada. Simplemente controla si IIS intenta cargar la clase de controlador de manera preventiva –

5

es bastante fácil. Cambie el siguiente fragmento para que coincida con la ruta del controlador y añada su web.config:

<configuration> 
    .... 
    <location path="YOUR HANDLER PATH" allowOverride="true"> 
    <system.web> 
     <httpRuntime requestValidationMode="2.0" /> 
     <pages validateRequest="false" /> 
    </system.web> 
    </location> 
</configuration> 
Cuestiones relacionadas