Question

J'ai une grande application Web .NET 2 qui a été mise à jour pour cibler le framework .NET 4.0.Depuis la mise à jour, je constate régulièrement l'erreur suivante dans mes logs :

Il s'agit d'une demande WebBresource non valide.

La ressource demandée est "~/WebResource.axd" Pour autant que je sache, la requête a l’air correcte dans la mesure où il y a une longue chaîne de requête avec des clés (les clés sont d, t) et les valeurs de ces clés.

Le mécanisme de génération de requêtes vers WebResource.axd a-t-il changé entre les versions du framework ?Quelqu'un a-t-il des conseils sur la façon de déboguer ce problème ?

Modifier:J'ai trouvé un moyen de décrypter la chaîne de requête de la demande de ressources Web (le code suit).La ressource demandée est pCSSFriendly|CSSFriendly.CSS.Menu.css ce qui ressemble à un problème lié à l'adressage de la ressource CSSFriendly.MenuAdapter utilisée par l'application.Ce « p » initial semble être le problème.

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;
}   
Était-ce utile?

La solution

Le mécanisme de génération de requêtes vers WebResource.axd a-t-il changé entre les versions du framework ?

Apparemment, l'application de mises à jour de sécurité (et certainement la modification des versions majeures du framework) peut modifier l'interaction client-serveur impliquant WebResource.axd de manière à provoquer cette erreur.Nous avons vu cette erreur après l'application des correctifs et la cause semble être la mise en cache côté client. http://forums.asp.net/t/1609380.aspx - les erreurs ont disparu au bout d'environ 30 jours.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top