You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JMeter执行.NET4.8脚本时报AjaxControlToolkit程序集哈希错误如何解决?

故障根因

Assembly "AjaxControlToolkit, Version=3.5.60501.0, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e" does not contain a script with hash code 报错的直接诱因是硬编码了ScriptManager动态生成的隐藏域值,该值由服务端基于当前请求上下文、AjaxControlToolkit版本、加载的脚本资源动态计算哈希,每次会话/请求都会发生变化,多线程或二次执行时静态值和服务端新生成的哈希不匹配就会抛错。你已经完成了ViewState和EventValidation的动态处理,仅需要补充对ScriptManager相关隐藏域的动态提取即可解决问题。

修复操作步骤
  • 第一步:定位ScriptManager生成的隐藏字段
    AjaxControlToolkit对应的ScriptManager会生成两类需要提取的隐藏域:
    • 名称以__TSM_HiddenField_开头的隐藏域(ToolkitScriptManager特有字段,存储所有脚本资源的哈希集合)
    • 所有携带hash参数的ScriptResource.axd/WebResource.axd请求,其哈希值来源均存储在上述隐藏域中
  • 第二步:添加JMeter正则表达式提取器
    在上一个返回包含ScriptManager隐藏域的请求节点下,添加正则表达式提取器,基础配置参考:
    • 引用名称:自定义变量名,例如script_manager_hash
    • 正则表达式:<input type="hidden" name="__TSM_HiddenField_.+?" id="__.+?" value="(.+?)" />
    • 模板:$1$
    • 匹配数字:1
  • 第三步:替换所有静态的ScriptManager相关值
    将脚本中所有硬编码的ScriptManager隐藏域提交值、以及ScriptResource.axd请求中的hash参数值,全部替换为提取到的变量${script_manager_hash},如果场景中需要拆分多个独立哈希值,对应调整提取规则拆分变量即可。
  • 第四步:校验配置正确性
    先将线程组设置为2个线程、循环执行3次,确认查看结果树中无报错后,再逐步提升到目标压测线程数即可。

注意:如果正则匹配不到值,可直接在浏览器访问对应页面,右键查看源代码搜索hidden和ScriptManager相关字段,调整正则表达式的name/ID匹配规则即可

内容的提问来源于stack exchange,提问作者Archana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 16:36:04