Ошибка WebResource.axd - это недопустимый запрос веб-ресурса.

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

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

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

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

Изменить: я нашел способ расшифровать строку запроса запроса веб-ресурса (код следует). Запрошенный ресурс - pCSSFriendly|CSSFriendly.CSS.Menu.css, что похоже на проблему с обращением к ресурсу CSSFriendly.MenuAdapter, который используется приложением. Похоже, что эта ведущая буква "p" может быть проблемой.

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

person kristian    schedule 14.02.2011    source источник
comment
вы видите, что пользовательский агент делает запрос в ваших журналах? Является ли пользовательский агент ботом, а не обычным браузером. Если это браузер, всегда ли это конкретный браузер?   -  person Shiv Kumar    schedule 14.02.2011
comment
Есть ли шанс, что вы можете использовать фактический URL-адрес запроса (с любыми изменениями, которые вам требуются)?   -  person Shiv Kumar    schedule 14.02.2011
comment
@Shiv - пользовательский агент - это не бот, не конкретный браузер. фактический запрашиваемый URL-адрес: /WebResource.axd?d=mMV7RYieQ41tpTxPsIlhBcWLOEc_3Zk34EIeVXcAdmd_v2A7LNXIx4APFE1uwxEunSxoFByBQlJC-llRVaRlDyz7c09C08C08C08C08C08C08C08C08C08C08   -  person kristian    schedule 15.02.2011
comment
У меня здесь такая же проблема. Новый сервер, тот же код (копирование / вставка всего сайта) работает на предыдущем сервере. Однажды я столкнулся с этой проблемой, но не могу вспомнить, как я ее решил.   -  person thomasb    schedule 10.11.2011
comment
После прочтения этого сообщения: stackoverflow.com/questions/5676232/ Я заметил, что сервер был даже не в нужный месяц (он указывал июнь, а мы находимся в ноябре). Я починил, и ... работает! Очень странно.   -  person thomasb    schedule 10.11.2011
comment
Нет, проблема не в ведущем p: я пытался расшифровать параметр d рабочих запросов WebResource, и ведущий p тоже присутствует.   -  person lencinhaus    schedule 09.02.2012
comment
Просто чтобы спасти других от неприятностей; Чтобы реализовать фрагмент кода, вам нужно будет сослаться на System.Web и System.Configuration и добавить ... using System.Web; using System.Web.Configuration;   -  person Steve Hibbert    schedule 19.11.2015


Ответы (1)


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

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

person Craig A    schedule 05.03.2012