как найти субдомен по текущему URL-адресу ASP-Classic

Я пытаюсь написать небольшой скрипт, в котором один источник скрипта взаимодействует с другой базой данных, но имя базы данных получается из имени поддомена. в настоящее время я провел приведенный ниже тест и столкнулся с проблемой, которую не смог исправить самостоятельно. проблема в том, что когда один пользователь открывает много вкладок субдоменов в своем браузере в течение 90 секунд или 2 минут, ответы на первый запрос будут одинаковыми для всех других запросов.

например URL:

http://user1.domains.com/subdomaintest.asp

https://user1.domains.com/subdomaintest.asp

http://user2.domains.com/subdomaintest.asp

http://user3.domains.com/subdomaintest.asp

http://user4.domains.com/subdomaintest.asp

http://user5.domains.com/subdomaintest.asp

сначала я открываю http://user1.domains.com/subdomaintest.asp, затем открываю http://user2.domains.com/subdomaintest.asp, и я получаю тот же ответ h1text(user1) , что не ожидается. он должен ответить h1text как user2. скажем, если я открою через 2 минуты второй URL-адрес, тогда ответит user2, что нормально. также GUID такой же, похоже, работает так же, как и ответы.

что я хочу, так это то, что ответ должен всегда зависеть от имени субдомена в любое время, а не через 2 минуты. если это проблема IIS, что это такое и где я могу это изменить? также как внедрить GUID во вкладку браузера и/или сеанс?

вот код:

'ServerName = Request.ServerVariables("HTTP_HOST")
ServerName = Request.ServerVariables("SERVER_NAME")
arrSplitted = Split(ServerName, ".")
SubDomain = arrSplitted(0)
'response.write(SubDomain)
response.write "<h1>" & SubDomain & "</h1>"
Response.Write "<h1>"& CreateGuid() &"</h1>"
Function CreateGuid()
    CreateGuid = Mid(CreateObject("Scriptlet.TypeLib").Guid,2,36)
End Function

Я много читал HTTP HEADER и выяснил разницу между Request.ServerVariables("SERVER_NAME") и Request.ServerVariables("HTTP_HOST").

response.write Request.ServerVariables("SERVER_NAME")
response.write Request.ServerVariables("HTTP_HOST")

но мне это не помогло. Также я пытался ответить cookie, но это то же самое. похоже, что IIS все равно, я запрашиваю с другого поддомена в течение 2 минут. почему это?

О сервере: IIS10, состояние сеанса false (я не использую), 64-битный. связанная любая информация, которую вы можете спросить у меня.

любое тело поможет мне, большое спасибо заранее! Пожалуйста помоги!


person Mem    schedule 03.08.2016    source источник
comment
Вы используете какое-либо перенаправление URL-адресов или переписывание URL-адресов с домена user1 на user2?   -  person Zam    schedule 03.08.2016


Ответы (2)


имхо ты почти все сделал правильно

но, я полагаю, вы путаетесь с позицией. вам нужно проверить только поддомен 1-го уровня, который имеет индекс UBound(X) - 1

<%
  Dim LServerName, LNames, LCycle
  LServerName = Request.ServerVariables("SERVER_NAME")

  Response.Write "<br>Full server name: " & LServerName

  If LServerName <> "" Then
    LNames = Split(LServerName, ".")

    For LCycle = LBound(LNames) To UBound(LNames)
      Response.Write "<br>Level #" & LCycle & ": " & LNames(LCycle)
    Next

    Response.Write "<br>UBound: " & UBound(LNames)

    If UBound(LNames) > 0 Then
      Response.Write "<br>Top level domain is: " & LNames(UBound(LNames))
      Response.Write "<br>1st level subdomain is: " & LNames(UBound(LNames) - 1)
    End If 

    If UBound(LNames) > 2 Then
      Response.Write "<br>2nd level subdomain is: " & LNames(UBound(LNames) - 2)
      Response.Write "<br>3rd level subdomain is: " & LNames(UBound(LNames) - 3)
    End If
  End If
%>
person Zam    schedule 03.08.2016
comment
Спасибо за ваш ответ. но это та же проблема. Я просто скопировал ваш код и обновил все открытые вкладки, имя поддомена такое же. Я также считаю, что код, мой код или ваш код не имеет проблем. но не могу найти в чем проблема. почему iis отвечает только правильный ответ на первый запрос? - person Mem; 03.08.2016
comment
очень странно. ссылка на мой код на моем домашнем сервере: http://1click.sdk.1click.lv/test.asp и http://x2.sdk.1click.lv/test.asp. Тот же веб-сайт с несколькими именами привязок. IIS 7.5 в 64-битной ОС - person Zam; 03.08.2016
comment
ваши те 2 ссылки/файл в одном и том же файле и каталоге? действительно очень странно. Я открываю ваши ссылки в течение 5 секунд, и они оба отвечают правильно. тогда почему моего нет? - person Mem; 03.08.2016

Я сам нашел проблему.

веб-сервер был iis 10, который поддерживает ставки с подстановочными знаками, и я использовал много ставок 80 и 443 для веб-сайта, включая субдомены с подстановочными знаками и живой веб-сайт. все было в одной папке, а сайт имеет один пул приложений и некоторые другие конфигурации.

проблема заключается в сеансе.

так много статей я прочитал, ищу решение, ни одно из них не работает. затем я был уверен, что это проблема сеанса, и попытался проверить на другом веб-сайте. да, для теста создал другой пул приложений и веб-сайт. проверено и все работает.

проблема была в сессии, а не в коде.

person Mem    schedule 05.08.2016