阿不

潜水

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  212 随笔 :: 0 文章 :: 3078 评论 :: 107万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

这里在使用asp.net ajax的程序发布后经常出现的一个异常情况。其实早在使用atlas时,就已经出现了这个异常了,只是那时并没有非常频繁的出现,也就是在程序启动后规律性的出现几次后就不发生了。由于不影响整个程序的正常运行也就没有关注了。但是在更新到asp.net ajax beta2版本后,并且使用了泛解析使用二级域名后就经常出错了,而且有几个规律:

1.在所有看到这个异常的邮件中,查看到的IP都是google的访问。而没有其它的用户,甚至是搜索引擎。

2.在出错的地方大部分是用二级域名访问资源路径:如 http://*.*.com/ScriptResource.axd?d=42zFeGddIOG6Ha39Bm22fyspDkNNAkCyiJm0F-kHdJ6O7yOwanGTbMYrJ6yzzZzUmROqn-J-NAWN5_V3qQJ90iV1TUiF-c0EYaTG7q-FEduJI7Emddi3XbvRgK-wH9VD0&t=632997086300000000

3.在分析的几个查询参数都不一样(d,t),照理说,要获得相同的脚本路径应用是使用相同的查询参数的啊。

简单分析:从目前获取的一些信息可以表明,这是由于google在访问了不存在的脚本资源出现的加密错误。可是它是怎么得到这些不存在的脚本资源路径的呢?为什么正常访问的用户不会出错呢?目前还没有自己得到很好的解释。

发布环境:asp.net ajax beta2,使用了UrlRewrite,Release version Assembly,没有限制ScriptResorce.axd的表单访问权限,web.config的debug=false 。

虽不影响正常运行,但为了随时了解程序的运行情况,我开启了healthmoniter,现在邮箱都快被填爆了。

如果您也有出现过类似异常,欢迎讨论。如果您已解决过类似异常,还请指教。

 

附上异常信息:

 

填充无效,无法被移除。

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Security.Cryptography.CryptographicException: 填充无效,无法被移除。
源错误:

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。

堆栈跟踪:

[CryptographicException: 填充无效,无法被移除。]
System.Security.Cryptography.RijndaelManagedTransform.DecryptData(Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount, Byte[]& outputBuffer, Int32 outputOffset, PaddingMode paddingMode, Boolean fLast) +1489116
System.Security.Cryptography.RijndaelManagedTransform.TransformFinalBlock(Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount) +306
System.Security.Cryptography.CryptoStream.FlushFinalBlock() +30
System.Web.Configuration.MachineKeySection.EncryptOrDecryptData(Boolean fEncrypt, Byte[] buf, Byte[] modifier, Int32 start, Int32 length, Boolean useValidationSymAlgo) +154
System.Web.UI.Page.DecryptString(String s) +79
[TargetInvocationException: 调用的目标发生了异常。]
System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) +0
System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) +72
System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) +358
System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) +29
System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters) +17
Microsoft.Web.Handlers.ScriptResourceHandler.DecryptString(String s) +185
Microsoft.Web.Handlers.ScriptResourceHandler.System.Web.IHttpHandler.ProcessRequest(HttpContext context) +325
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +154
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +64
posted on   阿不  阅读(11176)  评论(9编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示