Ein einzelner Server teilt unsere Hauptwebsite (gehostet von Apache) und die Exchange OWA-Site (gehostet von IIS).
Es gibt zwei verschiedene öffentliche IPs für die Sites und sie haben zwei verschiedene URLs. IIS besteht jedoch darauf, alle dem Server zugewiesenen statischen IPs abzurufen.
Ich habe ein wenig recherchiert und diesen Link gefunden:http://support.microsoft.com/kb/892847
Ich verwende IIS 6.0. Ich habe Socketpooling deaktiviert und neu gestartet. Habe httpcfg verwendet, um IIS den beiden internen IPs (xxx11:80, xxx11:443) zuzuweisen, und jetzt verhält sich die IIS-Site so, als ob die Ports verwendet würden, selbst wenn Apache ebenfalls ausgeschaltet ist. Ich habe die Apache-Konfiguration doppelt überprüft und bei Bedarf die IP-Adresse .12 angegeben.
Ich habe mir meine ListenOnlyList angesehen und sie sieht korrekt aus. Sie hat die 2 Einträge und die richtigen Ports.
Aus Spaß habe ich Socketpooling wieder eingeschaltet und alles funktioniert. Ich kann das Programm „Active Ports“ verwenden und sehen, wie 0.0.0.0:80 beim Ein- und Ausschalten von IIS in Gebrauch und außer Gebrauch geht.
Habe Socketpooling wieder ausgeschaltet und die Dinge laufen wieder schief.
Es scheint, als würde IIS die ListenOnlyList komplett ignorieren. Außer wenn ich die ListenOnlyList auf 0.0.0.0 ändere, läuft IIS reibungslos. Ich habe IIS doppelt überprüft und sichergestellt, dass die IPs übereinstimmen – das tun sie. Es ist nicht auf „Alle nicht zugewiesen“, sondern tatsächlich auf xxx11. Verrückt.
Irgendwelche Ideen?
Antwort1
Das Deaktivieren des Socket-Poolings funktioniert unter IIS6 nicht. Stattdessen müssen Sie den genannten Registrierungsschlüssel ändern und dann httpcfg ausführen.
Angenommen, Sie haben den Registrierungsschlüssel geändert. Was ist die Ausgabe der Ausführung von „httpcfg query iplisten“?
Antwort2
Haben Sie in den Website-Eigenschaften in IIS darauf geachtet, nur die IP-Adresse für den IIS-Server auszuwählen? Möglicherweise haben Sie „(Alle nicht zugewiesen)“ ausgewählt. Ich bin nicht sicher, ob dies Ihr Problem löst, aber es ist eine Überprüfung wert.
Antwort3
Ich habe einen Blog-Beitrag geschrieben, in dem die Schritte detailliert beschrieben werden, die Sie in httpcfg ausführen, damit dies funktioniert:
Grundsätzlich:
- manuelles Erstellen einiger IP-Adressbindungen für IIS (dadurch wird kein „Catch-All“-Szenario erstellt)
- Richten Sie Apache so ein, dass es auf einer IP-Adresse oder einem Port ausgeführt wird, der nicht in den obigen Bindungen enthalten ist.