2016-08-03 38 views
0

Ich versuche, kleines Skript zu schreiben, dass einzelne Skriptquelle mit anderen Datenbank kommuniziert, aber dort Datenbankname von Subdomain-Name erhält. zur Zeit habe ich den untenstehenden Test gemacht und hatte Probleme und konnte nicht selbst beheben. Das Problem besteht darin, dass, wenn ein Benutzer viele Subdomain-Registerkarten in seinem Browser für 90 Sekunden oder 2 Minuten öffnet, die Antworten der ersten Anfrage für alle anderen Anfragen gleich sind.So finden Sie Subdomain von der aktuellen URL ASP-Classic

zB URLs:

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

für erst ich öffne http://user1.domains.com/subdomaintest.asp dann offen http://user2.domains.com/subdomaintest.asp und ich bekomme die gleiche Antwort h1text (user1), die nicht zu erwarten ist. es muss h1text als user2 antworten. sagen wir mal wenn ich nach 2 minuten die zweite url öffne, dann antwortet user2, was ok ist. auch die GUID ist gleich, scheint wie die gleichen Arbeiten wie die Antworten.

was ich will ist, reagieren muss immer auf abhängige Subdomain Name jederzeit, nicht nach 2 Minuten. Wenn das IIS Problem ist, was ist es und wo kann ich es ändern? auch, wie die GUID in die Browser-Registerkarte und/oder Sitzung implementieren?

hier ist der Code:

'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 

ich viel der tat auf HTTP-Header zu lesen und den Unterschied von Request.ServerVariables ("SERVER_NAME") und Request.ServerVariables ("HTTP_HOST") erfahren.

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

aber es hat mir nicht geholfen. Auch ich habe versucht, auf Cookies zu reagieren, aber es ist dasselbe. scheint wie IIS ist egal, ich Anfrage von verschiedenen Subdomain für 2 Minuten. Warum das?

Über Server: IIS10, sessionstate false (ich verwende nicht), 64bit. verwandte irgendwelche Informationen, die Sie mich fragen können.

irgendein Körper mir helfen, Vielen Dank im Voraus! Bitte helfen Sie!

+0

verwenden Sie URL-Umleitung oder URL-Umschreibung von Domäne Benutzer1 zu Benutzer2? – Zam

+0

nein, überhaupt nicht. – Mem

Antwort

2

imho Sie fast alles richtig gemacht haben

aber, ich nehme an, Sie verwirren mit Position. Sie müssen nur 1. Ebene Sub-Domain, der Index von mir 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 
%> 
+0

Vielen Dank für Ihre Antwort. aber es ist das gleiche Problem. Ich kopiere einfach den Code eingefügt und aktualisiert alle geöffneten Tabs, der Name der Subdomain ist gleich. Ich glaube auch, dass der Code, mein Code oder dein Code kein Problem hat. aber ich kann nicht finden, was das Problem ist. Warum reagiert iis nur richtig auf die erste Anfrage? – Mem

+0

sehr seltsam. Link zu meinem Code auf meinem Home-Server: "http: // 1click.sdk.1click.lv/test.asp" und "http: // x2.sdk.1click.lv/test.asp". Dieselbe Website mit wenigen Bindungsnamen. IIS 7.5 auf 64bit OS – Zam

+0

sind Ihre 2 Links/Datei in derselben Datei und Verzeichnis? wirklich sehr seltsam. Ich öffne deine Links innerhalb von 5 Sekunden und beide antworten korrekt. Warum ist das dann nicht? – Mem

0

Ich fand das Problem hat, überprüfen.

der Webserver war IIS 10, die Wildcard-Gebote unterstützt und ich habe viele 80 und 443 Gebote für die Website, einschließlich Wildcard-Subdomains und Live-Website verwendet. Alles war in einem Ordner und die Website hat einen Anwendungspool und einige andere Konfigurationen.

das Problem ist die Sitzung.

so viele Artikel, die ich lese, suche nach Lösung, keiner von ihnen funktioniert. dann war ich mir sicher, dass das das sitzungsproblem war und versuchte mit verschiedenen webseiten zu testen. Ja, erstellt einen anderen Anwendungspool und eine Website für den Test. getestet und alles funktioniert.

das Problem war in der Sitzung, nicht der Code.