Heute habe ich ein paar Stunden damit verbracht, einen alten Source wieder zum laufen zu bringen.

Der Source stellt eine Implementierung des HttpListener als kleinen Webserver dar.

Bei den Unittests der einzelnen Module lief alles sauber durch. Aber dann beim Aufruf der Testseiten kamen seltsame Reaktionen vom Servermodul.

Das ging von sporadischem Aussteigen, sofortigem beenden und nur teilweisem senden der angeforderten Dateien.

Die Exceptions selbst waren erst einmal eindeutig:

    Objekt: System.Net.HttpListenerResponse
    
    Meldung:
    Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
    Auf das verworfene Objekt kann nicht zugegriffen werden.
    

Ein Tip von TheUndeadable brachte mich auf die Suche nach einem verfrühten, sprich manuellem, Dispose des Objektes.

Nada… Es war nichts zu finden. Auch ein Hochdrehen des Loglevels brachte nichts.

Ok, abgesehen von einem blöden Fehler im Caching, welcher mit diesem Problem aber nichts zu tun hatte, aber auch gleich gefixt wurde.

Beim stöbern in der MSDN, bin ich dann über einen Querlink auf diese Seite gestossen:

Configuring HTTP and HTTPS

Und hier haute die Erinnerung mit einem mächtigen DU DEPP zu.

Klar… beim Einsatz des HttpListener muß man Windows das erstmal mitteilen, dass der Port und die IP-Adresse gebunden werden soll und das ein Listener drauf läuft.

Also flink ein

    netsh http add iplisten ipaddress=0.0.0.0:80

gemacht und siehe da… es funktioniert wieder wie es soll.

Aber wieso Vista dann trotzdem einen Teil der Anfragen weiter geleitet hat… hier bin ich echt ratlos. Theoretisch hätte gar nichts passieren dürfen, oder wenigstens eine Exception geworfen werden müßte nach dem Motto “Access denied” o.ä.

Naja… Windows live ;)

Leave a Reply

You must be logged in to post a comment.