Christopher Fernandes Ответов: 1

Как мне бежать то же самое ASP.NET 3.5 веб - сайт на 2 разных портах через сервер IIS


Я разработал веб-сайт отслеживания отпусков сотрудников, используя asp.net 3.5, который я размещаю через сервер IIS 7.0 в интрасети моей компании.
я дважды развернул веб-сайт для двух отдельных отделов на одном сервере, так что у них есть один и тот же ip-адрес, но порт № 9696 и другой на порту № 9797
Теперь проблема заключается в том, что оба веб-сайта совместно используют файлы cookie, и я не могу войти на оба веб-сайта одновременно, используя один и тот же браузер.

Нет ли способа сохранить файлы cookie приложения отдельно от другого веб-сайта, если они размещены на одном сервере, но совершенно на другом порту?

Что я уже пробовал:

попробовал переименовать файлы cookie на обоих сайтах единственное что работает это открыть приложение в отдельном браузере

1 Ответов

Рейтинг:
6

Richard Deeming

Файлы cookie не зависят от порта.

Было предложение добавить эту функцию еще в 2000 году в RFC 2695[^]; но в 2011 году он был заменен на RFC 6265[^], который не упоминает о том, что port= атрибут. AFAIK, ни один браузер никогда не поддерживал Set-Cookie2 заголовок или атрибут порта.

Ближайшим эквивалентом является флаг "Secure", который указывает, что файл cookie должен отправляться только с HTTPS-запросами. Но файлы cookie без этого установленного флага все равно будут отправляться как для HTTP, так и для HTTPS запросов, так что это не решит вашу проблему.

У вас есть три варианта:

  • Переименуйте файлы cookie (только на одной версии сайта!)
    Вам нужно будет убедиться, что вы обновляете каждое отдельное использование, включая встроенные настройки сеанса и аутентификации.
  • Поместите обе версии на разные пути и добавьте путь к файлу cookie
    Так что у вас будет http://yourserver:9696/path1/ и http://yourserver:9797/path2/.
    Опять же, вам нужно будет получить каждый файл cookie, чтобы использовать правильный путь.
  • Дайте каждой версии другое имя хоста
    Установите два A записи на вашем внутреннем DNS, указывающие на сервер, и настройте заголовки хостов в IIS таким образом, чтобы каждая версия отвечала на одну запись.
    Напр.: http://app1.yourserver.local/ и http://app2.yourserver.local


Christopher Fernandes

Дорогой Ричард сэр,
Я реализовал первый и второй вариант, и оба приложения находятся в отдельном пути к папке. Оба приложения теперь работают нормально. Но мне любопытно узнать о 3-м варианте. Как это сделать?