2010-06-29 3 views
1

Иногда я получаю ошибку 400 Bad Request для разных сайтов, написанных на ASP.NET.Ошибка запроса ASP.NET и 400

Единственное, что я знаю, это очистить файлы cookie для этого сайта. Похоже, что причиной проблемы являются файлы _utmz и _utma, которые принадлежат Google Analytics. Проблема возникает в обычных случаях в Mozilla FireFox, иногда на Ghrome и Safari и никогда в IE. Эта ошибка возникает случайно.

То, что я нашел:

От Стефана по команде ASP.Net: http://forums.asp.net/p/1431148/3221542.aspx

В текущих версиях ASP.NET URLS , содержащих символы, такие как символ двоеточие будет отвергнут как потенциальная угроза безопасности. Историческая причина заключается в том, что базовая файловая система NTFS поддерживает альтернативные потоки ресурсов, которые могут быть доступны с именами, такими как «yourfile.txt: hiddendata.txt». Блокировка символа двоеточия из Urls предотвращает плохо написанные приложения от случайной работы с альтернативных потоков ресурсов.

Существует также ограничение в текущих версиях ASP.NET, входящие Urls необходимо сопоставить с файловой системой NTFS для целей определения управляемого данных конфигурации.

В ASP.NET 4 эти ограничения могут быть удалены . Однако эти изменений указаны в Beta 2 версии ASP.NET 4 - они не находятся в Бета-версии 1. Мы опробовали URL-адрес, указанный ранее в , на этом форуме и подтвердили, что с нашими внутренними сборками ASP.NET 4 вы можете использовать этот стиль Url и обрабатывать его без ошибок 400.

Является ли проблема с процессом выполнения ASP.NET, процессом управления файлами cookie кода FireFox или Google Analytics? Какие проблемы вы знаете?

+0

Возможно, это слишком большой размер всех файлов cookie, и это не только _utmz и _utma. Проверьте полный размер всех ваших файлов cookie и постарайтесь держать их маленькими каждый и все вместе. – Aristos

ответ

1

Проблема связана с тем, что firefox обрабатывает специальные символы в файлах cookie. Это не имеет никакого отношения к asp.net, у вас будет ошибка на любом языке, который вы используете.

Эта проблема чаще всего встречается с источниками кампании Google Analytics. Вы должны просто попытаться сохранить значения в них альфа-символам.

Мне лично пришлось исправить проблемы, когда люди использовали апостроф и mDash в своих строках запроса. В результате я говорю людям просто избегать дефисов и апострофов. Если вы не тот, кто их включает, вы не можете быть уверены, что они не копируют специальный символ, который браузер не может обработать.

This forum имеет предложение об очистке плохих файлов cookie на странице 400, чтобы они могли получить доступ к сайту должным образом.

Существует уже another question с той же проблемой в stackoverflow.

Перед установкой источников кампании вы должны быть уверены, что не указываете никаких специальных символов. Источники, созданные динамически с помощью информационных бюллетеней CMS и т. Д., Могут содержать плохие символы, если они не отформатированы агрессивно. У нас были проблемы с тем, что люди вставляют символы MSOffice в заголовки и ссылки, которые прерывают файлы cookie и останавливают работу страницы.

У вас нет решения проблемы, кроме как убедиться, что вы не отправляете плохие данные в GA и вызывают повреждение файлов cookie.