2010-08-31 13 views
9

Recibo errores con una aplicación en nuestro servidor web de prueba, que tiene instalado .NET 4.0, cuando ingreso HTML en un formulario. Consigo los errores habituales de:<httpRuntime requestValidationMode = "2.0" /> no funciona (usando IIS 6.0)

Un valor Request.Form potencialmente peligrosos se detectó desde el cliente

Esto es causado por el cambio en .NET 4.0 que desactiva la desconexión automática para la validación Entrada HTML Puedo solucionar este problema en mi máquina de desarrollo local mediante la adición de la directiva

<httpRuntime requestValidationMode="2.0" /> 

a la sección <system.web> de mi raíz web.config, y luego .NET rinde homenaje a la directiva <pages validateRequest="false" /> que está en la misma raíz web.config. Extrañamente, necesité reiniciar IIS en mi máquina local (que es la versión 5.1) para que este cambio funcione.

Cuando implemente la raíz web.config en nuestro servidor de prueba, sigo recibiendo los errores de validación. Intenté usar run > iisreset, deteniendo e iniciando IIS (que es la versión 6.0 en el servidor de prueba), e incluso reinicié el servidor para borrar completamente .NET. Mi aplicación definitivamente está recogiendo la nueva raíz web.config (he probado esto), sin embargo, la directiva <httpRuntime requestValidationMode="2.0" /> parece ser ignorada.

Mi aplicación está configurada como una aplicación .NET 4.0 en mi máquina local y en el servidor de prueba. Intenté reconstruir la aplicación y volver a implementarla en el servidor web de prueba. ¿Alguien puede sugerir lo que tengo que hacer para que esto funcione?

Gracias de antemano, Chris

+0

Para mí, está trabajando tanto en el desarrollo como en el entorno del producto sin ningún problema. Tal vez es algo más que te pierdas. – Aristos

+0

¿Estás seguro de que estás ejecutando tu aplicación en un grupo de aplicaciones de menos de 4.0? ¿O quizás lo está ejecutando en una aplicación/directorio virtual que es un programa secundario para una aplicación 2.0/3.5? – Ted

Respuesta

3

Si está utilizando MVC3, trate de añadir un filtro global en Global.asax.cs.

public static void RegisterGlobalFilters(GlobalFilterCollection filters) 
{ 
    filters.Add(new ValidateInputAttribute(false)); 
} 
Cuestiones relacionadas