kri*_*ian 7 c# asp.net webresource.axd .net-4.0 .net-2.0
我有一个大型.NET 2 Web应用程序已更新为目标.NET 4.0框架.自更新以来,我看到我的日志中经常出现以下错误:
这是一个无效的Web资源请求.
请求的资源是" 〜/ WebResource.axd "据我所知,请求看起来很好,因为有一个很长的查询字符串,其中包含键(键是d,t)和这些键的值.
是否在框架版本之间更改了对WebResource.axd生成请求的机制?有没有人对如何调试此问题有任何建议?
编辑:
我找到了解密Web资源请求查询字符串的方法(代码如下).请求的资源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;
}
Run Code Online (Sandbox Code Playgroud)
生成 WebResource.axd 请求的机制在框架版本之间是否发生了变化?
显然,应用安全更新(当然还有更改框架主要版本)可能会改变涉及 WebResource.axd 的客户端-服务器交互,从而导致此错误。我们在应用补丁后看到了此错误,原因似乎是客户端缓存http://forums.asp.net/t/1609380.aspx - 错误在 30 天左右后消失。
| 归档时间: |
|
| 查看次数: |
11183 次 |
| 最近记录: |