ASP.Net MVC Modelbinder&即使发布了multipart / MIME,Request.Form也是空的

时间:2016-04-26 19:34:04

标签: asp.net-mvc http post jmeter

我有一个通常可以通过浏览器正常使用的应用程序。

尝试录制或播放JMeter脚本时,应用程序停止工作,某些页面最终会显示空模型。我已经通过wireshark确认在这些请求期间发布了表单数据。

我将一个工作请求的wireshark与一个失败的请求进行了比较,差异非常小。

主要是这个

工作:

Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryyuuSWkmnnXJCTJzw

出现故障:

Content-Type: multipart/form-data; boundary=kAbx249hddVWzlxpSVyEMxcpc9waTo; charset=UTF-8

边界文本由JMeter代理修改,charset = UTF-8也由代理添加。

我确认在实际的MIME数据中,两种情况都使用了正确的边界。

所有其他标题,Cookie,表单中的姓名等都是相同的。

当我的动作被击中时,模型为空(主模型变量不为空,但该模型中的所有属性都是默认值)

在debug / immediate窗口中,Request.Form为空。

? Request.Form
{}
    [System.Web.HttpValueCollection]: {}
    base: {}
    AllKeys: {string[0]}

我可以为那些认为有用的人提供wireshark捕捉。

1 个答案:

答案 0 :(得分:0)

  1. 其他差异是什么?上述内容应该是至关重要的,如果它们匹配,边界并不重要。编码 - 它现在是2016年,每个表现良好的应用程序都应该了解unicode。
  2. 如果您尝试通过JMeter Chrome Extension录制您的测试会发生什么情况呢?它不应该如此"侵入性?#34 ;?