c# - WebResource.axd 错误 - "This is an invalid webresource request."

标签 c# asp.net .net-4.0 .net-2.0 webresource.axd

我有一个大型 .NET 2 Web 应用程序,它已更新为面向 .NET 4.0 框架。自更新以来,我发现我的日志中经常出现以下错误:

This is an invalid webresource request.

请求的资源是“~/WebResource.axd” 据我所知,该请求看起来不错,因为有一个带有键(键是 dt)和这些键的值的长查询字符串。

生成对 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;
}   

最佳答案

Has the mechanism for generating requests to WebResource.axd changed between framework versions?

显然,应用安全更新(当然还有更改框架的主要版本)可能会改变涉及 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/

相关文章:

c# - Java中的包等于C#中的包?

c# - 编译器选择了错误的重载

c#引用理解?

c# - .NET 版本为 4 或更高时如何编译

c# - 这个宽度的数据类型是什么?

立即窗口中的 C# == 运算符的行为与运行时不同

c# - 将“/”更改为“\” [C#]

c# - 使用自动完成和 Ajax 进行搜索

c# - 如何在 RichTextBox 中有选择地给字符串加下划线?

c# - 动态设置 html 表格中按钮的 OnClick