У меня есть большое веб-приложение .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;
}