IIS 7.5 / Win Server 2008 RC2: Ports werden nach Request nicht geschlossen

13/10/2009 - 09:42 von Jens Bottenschein | Report spam
Hallo NG,

wir haben vor einigen Tagen einen Server testweise auf Win Server 2008 mit
IIS 7.5 umgestellt und den auch von aussen zugànglich gemacht. Es làuft eine
ASP-Classic Applikation. Die Tests liefen alle erfolgreich, aber als User
auf den Server gelassen wurden (ca. 100-150) schmiert stàndig der IIS ab.
Mit "netstat -an" sieht man, dass er eine ewig lange Liste an Ports öffnet:
...
TCP 127.0.0.1:13594 127.0.0.1:1433 WARTEND
TCP 127.0.0.1:13595 127.0.0.1:1433 WARTEND
TCP 127.0.0.1:13596 127.0.0.1:1433 WARTEND
TCP 127.0.0.1:13597 127.0.0.1:1433 WARTEND
TCP 127.0.0.1:13598 127.0.0.1:1433 WARTEND
TCP 127.0.0.1:13599 127.0.0.1:1433 WARTEND
TCP 127.0.0.1:13600 127.0.0.1:1433 WARTEND
TCP 127.0.0.1:13601 127.0.0.1:1433 WARTEND
TCP 127.0.0.1:13602 127.0.0.1:1433 WARTEND
TCP 127.0.0.1:13603 127.0.0.1:1433 WARTEND
...
Es scheint wie wenn er für jede Anfrage einer ASP-Classic Seite einen neuen
Port öffnet. Irgendwann ist dann Schluss (65xxx)
Was muss man einstellen, damit die Ports jeweils nach erfolgreicher
Request-Abarbeitung wieder freigegeben werden?

Vielen Dank im Voraus

Gruß
Jens
 

Lesen sie die antworten

#1 Stefan Falz [MVP]
13/10/2009 - 10:15 | Warnen spam
Hallo Jens,

"Jens Bottenschein" schrieb:

Es scheint wie wenn er für jede Anfrage einer ASP-Classic Seite einen neuen Port öffnet. Irgendwann ist dann Schluss (65xxx)
Was muss man einstellen, damit die Ports jeweils nach erfolgreicher Request-Abarbeitung wieder freigegeben werden?



Alle Objekte schließen und terminieren. Das war aber früher auch schon so.

Dim Connection, Recordset

Set Connection = Server.CreateObject( "ADODB.Connection" )
Connection.Open ...
Set Recordset = Server.CreateObject( "ADODB.Connection" )
Recordset.Open ...

...

Recordset.Close()
Set Recordset = Nothing

Connection.Close()
Set Connection = Nothing

Wenn die letzten Zeilen fehlen (bzw. nicht für _jedes_ Objekt, dass ihr
erstellt, entsprechend Close und Set ... = Nothing aufgerufen wird), führt
das u.a. zu dem von dir geschilderten Problem.

Ganz früher konnte man bspw. auch noch Recordsets in einer Schleife erzeugen.
Seit MDAC 2.0 ist das tödlich (früher wars zwar auch nicht gut, machte aber
nur wenig aus). In dem Fall sollte man eher das Recordset außerhalb der
Schleife erstellen und in der Schleife nur mit Open ... Close arbeiten.

Tschau, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

Ähnliche fragen