我有一个大型的.NET 2 Web应用程序,该应用程序已更新为针对.NET 4.0框架。自更新以来,我经常在日志中看到以下错误:



请求的资源为“〜/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;
}

最佳答案



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

关于c# - WebResource.axd错误- “This is an invalid webresource request.”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4988691/

10-10 11:47