2011-02-14 158 views
7

我有一个较大的.NET 2 Web应用程序,已经更新为目标.NET 4.0框架。自更新以来,我看到以下错误在我的日志中经常出现:WebResource.axd错误 - “这是无效的Web资源请求。”

这是一个无效的网页资源 请求。

所请求的资源“〜/ WebResource.axd的” 据我可以告诉,请求看起来很好在这还有很长的查询字符串的钥匙(钥匙是d牛逼)和这些键的值。

是否有在框架版本之间更改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; 
} 
+0

您是否看到用户代理在日志中发出请求?用户代理是一个机器人,而不是一个普通的浏览器。如果它是一个浏览器,它总是一个特定的浏览器? – 2011-02-14 05:23:29

回答

2

具有生成请求WebResource.axd的框架版本之间改变的机制?

显然,应用安全更新(当然改变框架中的主要版本),可以改变这样的方式导致此错误涉及WebResource.axd的客户端 - 服务器交互。我们在应用补丁程序后看到这个错误,原因似乎是客户端缓存http://forums.asp.net/t/1609380.aspx - 错误在30天左右后消失。

相关问题