2011-02-14 10 views
7

Tengo una gran aplicación web .NET 2 que se ha actualizado para apuntar al framework .NET 4.0. Desde la actualización, veo el siguiente error que se repite regularmente en mis registros:Error de WebResource.axd: "Esta es una solicitud de recurso web no válida".

Se trata de una solicitud web no válida .

El recurso solicitado es "~/WebResource.axd" Por lo que yo puedo decir, la solicitud se ve bien en que hay una larga cadena de consulta con las teclas (teclas son d, t) y valores para esas claves.

¿El mecanismo para generar solicitudes a WebResource.axd ha cambiado entre las versiones de marco? ¿Alguien tiene algún consejo sobre cómo solucionar este problema?

Editar: Encontré una manera de descifrar la consulta de recursos web querystring (sigue el código). El recurso solicitado es pCSSFriendly|CSSFriendly.CSS.Menu.css, que parece un problema al direccionar el recurso CSSFriendly.MenuAdapter que utiliza la aplicación. Esa "p" inicial parece que podría ser el problema.

private string DecryptWebResource(string urlEncodedData) 
{ 
    byte[] encryptedData = HttpServerUtility.UrlTokenDecode(urlEncodedData); 
    Type machineKeySection = typeof(MachineKeySection); 
    Type[] paramTypes = new Type[] { typeof(bool), typeof(byte[]), typeof(byte[]), typeof(int), typeof(int) }; 
    System.Reflection.MethodInfo encryptOrDecryptData = machineKeySection.GetMethod("EncryptOrDecryptData", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.NonPublic, null, paramTypes, null); 

    try 
    { 
     byte[] decryptedData = (byte[])encryptOrDecryptData.Invoke(null, new object[] { false, encryptedData, null, 0, encryptedData.Length }); 
     string decrypted = Encoding.UTF8.GetString(decryptedData); 
     return decrypted; 
    } 
    catch (System.Reflection.TargetInvocationException) 
    { 
    } 

    return String.Empty; 
} 
+0

¿Ve al agente de usuario que hace la solicitud en sus registros? Es el agente de usuario un bot en lugar de un navegador normal. Si es un navegador, ¿es siempre un navegador específico? –

+0

¿Alguna posibilidad de mostrar la url de solicitud real (con las modificaciones que usted requiera)? –

+0

@Shiv - el agente de usuario no es un bot, no es un navegador específico. URL solicitada real es: "/WebResource.axd?d=mMV7RYieQ41tpTxPsIlhBcWLOEc_3Zk34EIeVXcAdmd_v2A7LNXIx4APFE1uwxEunSxoFByBQlJC-llRVaRlyz7B-OlDyh0CM5hgc8nbEkFNjAFf0&t=634273401161119442" – kristian

Respuesta

2

Tiene el mecanismo de generación de solicitudes de WebResource.axd cambiado entre versiones marco?

aplicar Aparentemente actualizaciones de seguridad (y, desde luego cambiar la versión del marco principales) puede alterar la interacción cliente-servidor en las que WebResource.axd de una manera tal que provoca este error. Vimos este error después de aplicar parches y la causa parece ser el almacenamiento en memoria caché del lado del cliente http://forums.asp.net/t/1609380.aspx - los errores desaparecieron después de 30 días más o menos.

Cuestiones relacionadas