Я написал этот тест который продолжает добавлять 'a'
к параметру до тех пор, пока браузер не выйдет из строя
Часть C#:
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult ParamTest(string x)
{
ViewBag.TestLength = 0;
if (!string.IsNullOrEmpty(x))
{
System.IO.File.WriteAllLines("c:/result.txt",
new[] {Request.UserAgent, x.Length.ToString()});
ViewBag.TestLength = x.Length + 1;
}
return View();
}
Просмотр:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
var text = "a";
for (var i = 0; i < parseInt(@ViewBag.TestLength)-1; i++) {
text += "a";
}
document.location.href = "http://localhost:50766/Home/ParamTest?x=" + text;
});
</script>
Я добавил дополнительные ограничения для IISExpress applicationhost.config
и web.config
установка maxQueryStringLength="32768"
.
также Добавлено в конфигурацию
<headerLimits>
<add header="Content-type" sizeLimit="32768" />
</headerLimits>
что совсем не помогло, наконец, решил использовать скрипач, чтобы удалить реферер из заголовка.
static function OnBeforeRequest(oSession: Session) {
if (oSession.url.Contains("localhost:50766")) {
oSession.RequestHeaders.Remove("Referer");
}
Что хорошо получилось.
В IE9 я получил
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
4043
person
Matas Vaitkevicius
schedule
19.07.2016