我正在寻找这个问题的解决方案:
在运行我的自动网络测试时,我收到了一个请求失败,在这里你是我发现的回复: 请求失败:在测试环境中找不到上下文参数'$ HIDDEN1 .__ EVENTVALIDATION 我想出隐藏字段被假设从哪个请求中提取(在之前的请求中),其中(Hidden1)我在before请求的提取规则中找到它并且提取规则的Context Parameter Name的值是1。 / p>
注意:我目前使用的是静态参数,HTTP状态为200。
在互联网上搜索后,我发现:http://blogs.msdn.com/b/slumley/archive/2007/04/10/how-to-debug-a-web-test.aspx我找不到我的解决方案。
这个问题似乎很复杂,因为我保留了2天而没有任何答案!如果有人想知道更多信息,我24/24在线:)非常感谢...
答案 0 :(得分:3)
我遇到了类似的问题(我看到这个问题很老了,但我想我会发布一个解决方案,因为这是google针对此问题的第一个结果)。
问题是__EventValidation标记是浏览器呈现的最后一个内容,并且VisualStudio 2008 Web测试在超过一定长度时截断响应对象(我认为限制为1.5MB)。
您有三种选择:
希望能帮助任何面临类似问题的人。
〜丹
答案 1 :(得分:1)
我遇到了类似的问题,仍然在努力解决这些问题。与此同时,这个链接也可能有所帮助:
http://blogs.msdn.com/b/slumley/archive/2007/04/10/how-to-debug-a-web-test.aspx
答案 2 :(得分:0)
解决方案是将所有EnableEventValidation属性更改为true(这是默认值)。
但我公开的最佳解决方案是使用visualstudio 2010的VSTS,它比2008年更好,两者之间确实发生了很大的变化。
答案 3 :(得分:0)
如果有人遇到此问题并选择覆盖Render方法,则以下是示例代码。
var stringWriter = new System.IO.StringWriter();
var htmlWriter = new HtmlTextWriter(stringWriter);
base.Render(htmlWriter);
var html = stringWriter.ToString();
const string validationELement = "<input type=\"hidden\" name=\"__EVENTVALIDATION\"";
const string hiddenDivName = "<div class=\"aspNetHidden\">";
// Find event validation element.
var startIndex = html.IndexOf(validationELement);
if (startIndex >= 0)
{
var endIndex = html.IndexOf("/>", startIndex) + 2;
// Cut event validation element.
var input = html.Substring(startIndex, endIndex - startIndex);
html = html.Remove(startIndex, endIndex - startIndex);
// Paste element into hidden div.
var hiddenDivStartIndex = html.IndexOf(hiddenDivName);
html = html.Insert(hiddenDivStartIndex + hiddenDivName.Length, input);
}
writer.Write(html);