У меня есть большое веб-приложение .NET 2, которое было обновлено для работы с платформой .NET 4.0. С момента обновления я регулярно вижу в своих журналах следующую ошибку:
Это недопустимый веб-ресурс.
У меня есть большое веб-приложение .NET 2, которое было обновлено для работы с платформой .NET 4.0. С момента обновления я регулярно вижу в своих журналах следующую ошибку:
Это недопустимый веб-ресурс.
У меня есть большое веб-приложение .NET 2, которое было обновлено для работы с платформой .NET 4.0. С момента обновления я регулярно вижу в своих журналах следующую ошибку:
Это недопустимый веб-ресурс. запрос.
Запрошенный ресурс: " ~ / WebResource.axd " Насколько я могу судить, запрос выглядит нормально, поскольку есть длинная строка запроса с ключами (ключи - d , 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; }