У меня есть несколько серверов (dev, 2 x test, 2 x prod), работающих на одном сайте asp.net.
Серверы test и prod находятся в сбалансированных парах (prod1 с prod2 и test1 с test2).
Пара тестовых серверов демонстрирует некоторое (супер) замедление или зависание во время загрузки примерно одной из десяти страниц. Иногда в самом верху страницы появляется строка текста, которая выглядит примерно так:
00 OK Date: Thu, 01 Apr 2010 01:50:09 GMT Server: Microsoft-IIS/6.0 X-Powered_By: ASP.NET X-AspNet-Version:2.0.50727 Cache-Control:private Content-Type:text/html; charset=ut
(начало и конец "обрезаны".)
Кто-нибудь видел что-нибудь подобное раньше? Любая идея, что это значит или что это вызывает?
Изменить:
Я тоже часто вижу это, когда щелкаю что-то - это выглядит как красный текст на желтой странице:
XML Parsing Error: not well-formed
Location: http://203.111.46.211/3DSS/CompanyCompliance.aspx?cid=14
Line Number 1, Column 24:2mMTehON9OUNKySVaJ3ROpN" />
-----------------------^
Если я вернусь и нажму снова, это сработает (я вижу страницу, на которой нажал, а не сообщение об ошибке выше).
Обновление:
... И вместо загрузки страницы я иногда получаю белый экран с текстом, подобным этому, черным (очень похоже на приведенный выше текст):
HTTP / 1.1 302 Найдено дата: среда, 21 апреля 2010 г. 04:53:39 GMT Сервер: Microsoft-IIS / 6.0 X-Powered-By: ASP.NET X-AspNet-версия: 2.0.50727 Расположение : /3DSS/EditSections.aspx?id=3&siteId=56§ionId=46 Set-Cookie: .3DSS = A6CAC223D0F2517D77C7C68EEF069ABA85E9HFYV64F & FA4209E2621B8DCE38174AD699C9F0221D30D49E108CAB8A828408CF214549A949501DAFAF59F080375A50162361E4AA94E08874BF0945B2EF; Путь = /; HttpOnly Cache-Control: private Content-Type: text / html; charset = utf-8 Content-Length: 184
объект переехал сюда
Где "здесь" - это ссылка, которая указывает на URL, такой же, как тот, который я запрашиваю, за исключением того, что в нем есть дополнительная папка, что означает что-то вроде:
http://123.1.2.3/MySite//MySite/Page.aspx?option=1
вместо:
http://123.1.2.3/MySite/Page.aspx?option=1
Обновление:
Мой коллега обнаружил некоторую информацию о том, что это может быть связано с тем, что тестовые серверы работают под управлением iis в 64-битной версии (64-битная версия win 2003) (prod-серверы имеют 32-битную версию win 2003).
Итак, мы попытались указать IIS использовать 32-разрядный код:
cscript% SYSTEMDRIVE% \ inetpub \ adminscripts \ adsutil.vbs SET W3SVC / AppPools / Enable32bitAppOnWin64 1
% SYSTEMROOT% \ Microsoft.NET \ Framework \ v2.0.50727 \ aspnet_regiis.exe -i
(с эта страница поддержки MS )
Но iis вообще перестал работать (сервер «недоступен» на белой странице вместо веб-сайтов).
Обратное выше (см. Ссылку) сначала тоже не сработало. Вкладка ASP.NET исчезла из свойств нашего веб-сайта IIS, и нам пришлось в течение часа возиться, удаляя (aspnet_regiis.exe -u) и переустановив 32-битный ASP.NET и добавив Default.aspx обратно в документы по умолчанию.
Мы, вероятно, попробуем еще раз через несколько дней, если у кого-то есть что-то добавить, пожалуйста, сделайте.
Обновление:
Кажется, это расходится со всем, что мы узнали до сих пор, но наше тестирование показывает, что эта проблема возникает только в Firefox, а не в IE или Chrome (!! ??).
Обновление: решение
Для тех, кто найдет это позже:
По предложению Аристоса (см. Принятый ответ) мы искали код для HTTP-заголовка «Content-Length». была страница, которая его установила, страница, которая вытаскивает изображение из БД для отображения логотипа компании (выплевывает его прямо в ответ, то есть: вместо ссылки сказать «log56.gif» вы можете ссылка на «ThisImagePage.aspx? id = 56», и он будет обслуживать указанный GIF из БД).
Мы закомментировали строку:
HttpContext.Current.Response.AddHeader("Content-Length", File.Length.ToString());
... и это сработало. Если кто-то может увидеть ошибку в этом, дайте нам знать, иначе я думаю, что это была какая-то проблема конфигурации IIS или балансировщика нагрузки, которая появляется только при ручной настройке длины содержимого в двоичных файлах и только в Firefox (!?) .