Назад | Перейти на главную страницу

почему мой iis 7.5 создает несколько файлов cookie ASPSESSIONID в классическом asp?

У меня Windows Home Server 2011 SP1 64bit. Он работает под управлением IIS 7.5 и имеет классическое приложение asp. Время от времени я получаю замедление в зависимости от клиента. Под этим я подразумеваю, что один конкретный браузер будет вести себя так, как будто сервер не найден. Другие браузеры на той же машине работают нормально, и другие машины в сети тоже работают.

Я установил IIS7.5, а затем добавил свое классическое приложение asp. Я настроил пул приложений, чтобы разрешить 32-разрядный доступ для моего com, и я настроил IIS, чтобы отправлять мне фактические ошибки. Я установил общие заголовки http - «http keep alive» и «expire web content немедленно», чтобы посмотреть, помогают ли они (нет). Это все, что я изменил.

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

Когда это происходит при проверке браузера, всегда есть несколько файлов cookie ASPSESSIONID (например, более 30). Они выглядят так:

Cookie:ASPSESSIONIDSCRQTCBT=JCFJPAHDDFOOBJCDHCIPHDCH; ASPSESSIONIDCQQSTQAC=MAJHOOJCFEDLCLPNALLILMCL; ASPSESSIONIDAQTTRQBD=OGIPPIFDHODGGANGGPPJFJGI; ASPSESSIONIDQCCQCRBC=IINDIKMBMNABDJKMCKMFMFOF; __utma=104959943.97773051.1372652641.1372652641.1372652641.1; __utmc=104959943; ASPSESSIONIDSQDRCSCQ=JHCNKOADBNKDMCLKFFCCINJD; ASPSESSIONIDQSQQDDSQ=OLFFMCCDBBNCLDKEFEAEIONM; ASPSESSIONIDSSSBTCCD=NBLNLHMBEOANIGDHHLFHNENH; ASPSESSIONIDACQRATQT=DKJNFHODFIDJJBFEFMBEBBLB; ASPSESSIONIDQSSSRTDD=ICCNACFCIPMAHJEPHDJBNMPA; ASPSESSIONIDASDBABDS=PANLJLOCMFAFGHEEEGAPJNPM; ASPSESSIONIDASAACACS=PIDJNIPCLOJCKINLBLCBPJED; 

и т.д ..

За этим ужасом в конечном итоге следует пара настоящих куки, которые я установил. Я не ИСПОЛЬЗУЮ этот АСПСЕССИОНИД - для чего он нужен, могу ли я от него избавиться? Может ли это быть причиной моего замедления?

Очень маловероятно, что cookie-файлы ASPSession имеют какое-либо отношение к вашей проблеме.

Если вы не используете состояние сеанса на своем сайте ASP, вы можете отключить его в IIS.

В диспетчере IIS выберите свой сайт и щелкните значок ASP, внизу разверните Session Properties и установить Enable Session State к Ложь, у вас больше не будет этого файла cookie.

Почему их двое? Классический механизм ASP устанавливает файл cookie при создании сеанса для пользователя. Если по какой-либо причине он теряет этот сеанс (например, перезапуск AppPool), он устанавливает новый файл cookie для нового сеанса. Браузер сохраняет старую, потому что не знает, что сервер больше не действителен.

У меня тоже была эта пробема. Я думаю, что максимальный размер файла cookie домена составляет 4 КБ, поэтому какое-то странное поведение, которое я испытал, на самом деле было связано с тем, что 4 КБ пространства были заполнены поддельными данными cookie ASPSESSIONID.

Решение Антона javascript здесь решило проблему для меня: https://stackoverflow.com/questions/12783878/classic-asp-multiple-aspsessionid-in-cookies