使用VS2010 Web性能测试查看损坏状态

时间:2012-03-28 14:02:30

标签: visual-studio-2010 viewstate webtest

运行我的一个Visual Studio Web性能测试时,我在尝试解码viewstate时发现间歇性异常:

消息: Base-64字符数组的长度无效。

在System.Web.UI.Object.UI.ObjectStateFormatter.System.Web上的System.Web.UI.ObjectStateFormatter.Deserialize(String inputString)的System.Convert.FromBase64String(String s)处调用Stack:。 System.Web.UI.HiddenFieldPageStatePersister.Load()

中System.Web.UI.Util.DeserializeWithAssert(IStateFormatter formatter,String serializedState)的UI.IStateFormatter.Deserialize(String serializedState)

这只发生在一个地点的一次测试中。做一些研究我注意到客户端发送的视图状态和服务器收到的视图状态的区别仅在于所有加号(+)字符都变为空格()。

造成这种情况的原因是什么?

1 个答案:

答案 0 :(得分:2)

ASP.NET期望_VIEWSTATE隐藏表单字段在到达服务器之前进行URL编码。当ASP.NET收到请求时,它对_VIEWSTATE参数进行URL解码,已知该参数可以将参数转换为空格。

在webtest的_VIEWSTATE隐藏表单字段中将网址编码属性设置为 true 会导致错误消失。

相关问题