Ошибка WebResource.axd - «Это неверный запрос веб-ресурса». - PullRequest
7 голосов
/ 14 февраля 2011

У меня есть большое веб-приложение .NET 2, которое было обновлено для платформы .NET 4.0. После обновления в журналах регулярно появляется следующая ошибка:

Это недопустимый веб-ресурс запрос.

Запрашиваемый ресурс: " ~ / WebResource.axd " Насколько я могу судить, запрос выглядит хорошо, так как есть длинная строка запроса с ключами (ключи d , t ) и значениями для этих ключей.

Изменился ли механизм генерации запросов к WebResource.axd между версиями фреймворка? У кого-нибудь есть советы по устранению этой проблемы?

Edit: Я нашел способ расшифровать строку запроса веб-ресурса (код следует). Запрашиваемый ресурс - pCSSFriendly|CSSFriendly.CSS.Menu.css, что выглядит как проблема с обращением к ресурсу CSSFriendly.MenuAdapter, который используется приложением. Это ведущий «р» выглядит так, как будто это может быть проблемой.

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;
}   

1 Ответ

2 голосов
/ 05 марта 2012

Изменился ли механизм генерации запросов к WebResource.axd между версиями платформы?

Очевидно, что применение обновлений безопасности (и, конечно, изменение основных версий фреймворка) может изменить взаимодействие клиент-сервер, включая WebResource.axd, таким образом, чтобы вызвать эту ошибку.Мы увидели эту ошибку после применения исправлений, и причина, кажется, кеширование на стороне клиента http://forums.asp.net/t/1609380.aspx - ошибки исчезли через 30 дней или около того.

...