Wieder einmal kommt die Anforderung des Auftraggebers, die zu entwickelnde Webanwendung soll neben den aktuellen Versionen von Firefox und Chrome auch in mehreren Versionen des Internet Explorers, z. B. die Versionen 7, 8 und 9, laufen. Auch diesmal stellt sich die Frage, ob man auf diverse Software von Drittanbietern, die mehrere IE-Versionen parallel installiert versprechen, setzt. Vielleicht setzt man auch die im Internet Explorer 9 eingebauten Funktionen zur Umschaltung zwischen IE 7, 8 und 9 Modus ein. Evtl. bietet auch die hausinterne IT-Abteilung verschiedene Server für einen Remote-Desktop-Zugang an.
Eine Alternative, welche volle Flexibilität in der Auswahl der zum Testen (parallel) verwendeten Browser bietet, kann die Arbeit mit dem Windows XP Mode unter Windows 7 sein. Der folgende Artikel beschreibt aufbauend auf bereits existierenden Anleitungen, wie solch ein Entwicklersystem zum Testen einer Webanwendung einfach eingerichtet werden kann.
Im Web lassen sich einige Anleitungen zur Inbetriebnahme des Windows XP Mode sowie zum Erstellen mehrerer virtueller Maschinen finden. Als Basis für diesen Beitrag wurde die Anleitung Using Windows 7’s Windows XP Mode to Run Multiple Versions of Internet Explorer von Ted Johnson (Microsoft Internet Explorer Team) verwendet. Mittels den dort beschriebenen Schritten lassen sich mehrere virtuelle Maschinen mit unterschiedlichen Versionen des Internet Explorers erstellen. Demnach wird in der hier beschriebenen Vorgehensweise eine Windows 7 Professional, Enterprise oder Ultimate Version vorausgesetzt. Dieser Artikel konzentriert sich auf die Einstellungen an Host- und Gastsystem, um den Zugriff aus dem Gastsystem auf eine Webanwendung in der Entwicklungsumgebung des Hostsystems zu ermöglichen. Für die Entwicklung der Webanwendung wird hierbei der IIS Express verwendet.
Nachdem die virtuelle(n) Maschine(n) soweit mit der nötigen Software und den erforderlichen Updates versorgt ist (sind), müssen zwei weitere Komponenten korrekt eingerichtet werden:
- Das Netzwerk der virtuellen Maschine, damit sie auf das Hostsystem zugreifen kann.
- Der lokale Webserver, damit die Anwendung nicht nur über localhost erreichbar ist.
Netzwerkadapter des Virtual PC anpassen
Um dem Gastbetriebssystem den Zugriff auf das Internet sowie das Hostsystem zu ermöglichen, eignen sich zwei Netzwerkadapter. Dazu einfach über das Startmenü des Hostsystems die Liste der Virtual PCs aufrufen (siehe Abbildung 1).
Danach werden für die einzelnen virtuellen Maschinen die beiden Netzwerkadapter “Shared Networking (NAT)” (für den Internetzugriff) sowie “Microsoft Loopback Adapter” (für den Zugriff des Gastsystems auf das Hostsystem) eingestellt. Eine Abfolge der erforderlichen Arbeitsschritte ist in Abbildung 2 dargestellt. Sollte der Microsoft Loopback Adapter nicht zur Auswahl stehen, kann man diesen zu seiner Systemkonfiguration hinzufügen. Die einzelnen Schritte dafür kann man hier nachlesen. Eine Alternative zum Microsoft Loopback Adapter stellt der VirtualBox Host-Only Ethernet Adapter dar. Dieser steht auf dem Hostsystem bereits zur Verfügung, wenn dort Virtual Box installiert ist. Die Konfiguration dieses Adapters ist analog des Microsoft Loopback Adapters. Zu Gunsten der Übersichtlichkeit wird im Nachfolgenden nur die Konfiguration des Microsoft Loopback Adapters beschrieben.
Festlegen von statischen IP-Adressen
Host- und Gastsystem müssen lokale IP-Adressen im gleichen Netzwerk verwenden. Dazu wird unter Windows 7 zunächst eine statische IP-Adresse am Microsoft Loopback Adapter festgelegt (vgl. Abbildung 3). Im Beispiel wird eine Adresse aus dem Netzwerk 192.168.50.0/24 verwendet. Für das Hostsystem ist dies die 192.168.50.1.
In der virtuellen Maschine muss die zugehörige Netzwerkverbindung ebenfalls mit einer statischen IP-Adresse aus diesem Netzwerk konfiguriert werden. Dazu werden nach Start des Virtual PC die Eigenschaften der Local Area Connection 2 geöffnet und wie in Abbildung 4 dargestellt festgelegt.
ACHTUNG: Kein Default-Gateway festlegen. Mehrere Default-Gateways können zu Netzwerkproblemen führen. Nähere Informationen zum Verwalten mehrere Netzwerkkarten stehen hier bereit.
Der andere Netzwerkadapter des Gastsystems (Local Area Connection) sollte seine IP-Adresse automatisch beziehen (siehe Abbildung 5).
Um vom Gastsystem auf das Hostsystem per Namen zugreifen zu können, muss noch die hosts-Datei angepasst werden (siehe Abbildung 6). Diese ist unter Windows XP im Verzeichnis “C:\Windows\System32\drivers\etc\” zu finden.
Zugriff auf das Hostsystem öffnen
Um auf den Entwicklungswebserver vom Gastsystem, also der virtuellen Maschine aus, zugreifen zu können, sind folgende zwei Schritte nötig. Zunächst wird die Firewall entsprechend verändert und danach wird der Entwicklungswebserver angepasst.
Unter Windows 7 kann man die Firewall-Einstellungen einfach über das Startmenü aufrufen. Dazu lediglich “Firewall” im Suchfeld eingeben und dann unter den gefundenen Programmen “Windows Firewall with Advanced Security” aufrufen (siehe Abbildung 7).
Dann wird einfach über das Kontextmenü eine neue eingehende Regel angelegt (siehe Abbildung 8).
Um keine Sicherheitslücke entstehen zu lassen, ist es sinnvoll, den Zugriff so einzuschränken, dass man nur von den Rechnern aus dem virtuellen Netzwerk zugreifen kann. Dazu schränkt man den Remote-IP-Adressbereich auf das virtuelle Netzwerk ein (vgl. Abbildung 9).
Wer die Firewall-Regeln noch enger definieren möchte, kann natürlich weitere Einschränkungen, wie z. B. auf Protokoll, Port oder Anwendung vornehmen.
Zum Abschluss muss noch der lokale Webserver konfiguriert werden. Wie eingangs beschrieben kommt hierbei der IIS Express zum Einsatz. Nähere Informationen zum IIS Express sind in der msdn verfügbar. Die erforderliche Konfigurationsdatei “applicationhost.config” des IIS Express ist im Dokumentenverzeichnis des Benutzers zu finden (vgl. Abbildung 10).
Nachdem diese Datei in einem Texteditor geöffnet ist, muss man zu der entsprechenden Site-Konfiguration navigieren. An der in Abbildung 11 hervorgehobenen Stelle ist ein weiteres Binding einzufügen. Dieses muss dann anstatt “localhost” den Namen des Hostsystems erhalten, im Beispiel hier “nbk024”.
Falls der IIS Express zu diesem Zeitpunkt bereits läuft, muss dieser noch einmal neu gestartet werden, damit die neuen Einstellungen verwendet werden. Ab dann kann die zu testende Webanwendung von den Gastsystemen aus, im Beispiel über “http://nbk024:8080”, erreicht und getestet werden.
Das geht auch viel einfacher.
Zumindest unter Win7 mit iE 9.
Einfach die Entwicklertool starten (F12) und dort kann man zwischne iE 7-9 wechseln 😉