Ausführen von IIS Express ohne Administratorrechte
von Vaidy Gopalakrishnan
IIS Express wurde entwickelt, um die am häufigsten verwendeten Webentwicklungs- und Testaufgaben ohne Administratorrechte auszuführen. Das ist sehr hilfreich in Szenarien, in denen Entwickler keine Administratorrechte auf ihren Computern haben. Durch diese Funktion wird sogar bei Administratoren der Workflow nicht mehr unterbrochen, wenn sich das Popupfenster der Benutzerkontensteuerung (User Account Control, UAC) in Windows Vista und Windows 7 öffnet.
In diesem Artikel wird erläutert, was Standardbenutzer mit IIS Express tun können, und es werden die Aufgaben beschrieben, die auf Administratoren beschränkt sind.
Lokales Ausführen von Websites
Mit IIS Express können Standardbenutzer Websites lokal mit nicht reservierten Ports (Ports größer als 1024) ausführen. Die Standardmäßige Websitebindung für IIS Express ist http://localhost:8080
. Standardmäßig konfigurieren WebMatrix und Visual Studio 2010 SP1 Beta auch Websites für die Verwendung von Localhost und einem nicht reservierten Port.
Im Gegensatz dazu sind Administratorrechte erforderlich, um Inhalte für externe Anforderungen bereitzustellen oder einen reservierten Port wie 80 oder 443 zu verwenden.
Konfigurieren von Websites und Anwendungen
Sowohl IIS als auch IIS Express verwenden eine Applicationhost.config-Datei, die serverweite Konfigurationsinformationen enthält. Mit IIS Express besitzt jeder Benutzer seine eigene Kopie von applicationhost.config, was bedeutet, dass der Benutzer ohne spezielle Berechtigungen u. a. Websites hinzufügen, Websites entfernen, virtuelle Verzeichnisse usw. konfigurieren kann. IIS Express sucht auf Windows 7 nach einer applicationhost.config-Datei im Ordner Dokumente des Benutzers (z. B. %userprofile%\Documents\IISExpress\config). IIS Express kann auch mithilfe der Befehlszeilenoption "/config" auf eine benutzerdefinierte applicationhost.config-Datei verwiesen werden. Dadurch muss man kein Administrator sein, um IIS Express mit Visual Studio verwenden zu können.
Da IIS eine computerweite applicationhost.config-Datei verwendet, für die Standardbenutzer keine Schreibberechtigung haben, können dieselben Aufgaben unter IIS nur von Administratoren ausgeführt werden. (Da IIS in der Regel auf Servercomputern verwendet wird, wird dies aus der Sicht eines einzelnen Entwicklers in der Regel nicht als Einschränkung gesehen.)
Starten und Beenden von Sites
Mit IIS Express kann ein Standardbenutzer den eigenen Webserver nach Belieben starten und beenden. Dies kann mithilfe von WebMatrix und Visual Studio 2010 SP1 Beta oder über die ausführbare Befehlsdatei "iisexpress.exe" erfolgen. Eine Windows-Anwendung im Infobereich ermöglicht Benutzern auch das Durchsuchen und Herunterfahren von IIS Express-Instanzen.
Mit IIS können Benutzer ihre Website nicht direkt starten. Stattdessen ist der Arbeitsprozess-Aktivierungsdienst (Worker Process Activation Service, WAS) für die Aktivierung von Websites verantwortlich. Da WAS ein Systemdienst ist, können nur Administratoren den Dienst starten oder beenden.
Verwenden von SSL
Das Konfigurieren des Zugriffs über die Secure Sockets Layer-Ebene (SSL-Ebene) erfordert Administratorrechte in IIS Express, genau wie in IIS. Das IIS Express-Setupprogramm führt jedoch die folgenden Aufgaben aus, wodurch Standardbenutzer SSL mit IIS Express verwenden können:
- Es erstellt und installiert automatisch ein selbstsigniertes SSL-Serverzertifikat im lokalen Computerspeicher.
- Es konfiguriert HTTP.SYS, um die Ports 44300 bis 44399 für SSL zu reservieren. Eingehende SSL-Anforderungen, die Localhost und einen der Ports im angegebenen Bereich verwenden, werden automatisch dem selbstsignierten Zertifikat zugeordnet.
(HTTP.SYS ist eine Betriebssystemkomponente, die SSL für IIS und IIS Express verarbeitet. Das Setupprogramm kann HTTP.SYS konfigurieren, da das Setup unter erhöhten Rechten ausgeführt wird.)
Daher ist die Verwendung von SSL zum Testen einer Website mit IIS Express so einfach wie das Hinzufügen einer Bindung wie der folgenden zum Websiteelement in applicationhost.config:
<binding protocol="https" bindingInformation="*:44300:localhost" />
Dies funktioniert nur für lokalen Datenverkehr (Localhost-Anforderungen) und für den angegebenen Portbereich. Administratorrechte sind erforderlich, um ein benutzerdefiniertes SSL-Zertifikat zu konfigurieren oder SSL mithilfe eines Ports außerhalb des angegebenen Bereichs auszuführen.
Zusammenfassung
IIS Express ermöglicht es Benutzern, die nicht Administratoren sind, die folgenden Aufgaben auszuführen:
- Eine Website lokal ausführen, und eine Portnummer größer als 1024 verwenden.
- Websites, Anwendungen und virtuelle Verzeichnisse hinzufügen, entfernen und ändern.
- Den Webserver starten und beenden.
- SSL-Unterstützung hinzufügen, um eine Website mit einem vorinstallierten selbstsignierten SSL-Zertifikat und einem Port im Bereich zwischen 44300 und 44399 zu testen.
Zum Ausführen der folgenden Aufgaben sind Administratorrechte erforderlich:
- Einen reservierten Port wie z. B. 80 oder 443 verwenden.
- Anforderungen für externen Datenverkehr verarbeiten.
- Ein benutzerdefiniertes SSL-Zertifikat konfigurieren.
- SSL mit einem Port außerhalb des Bereichs von 44300 bis 44399 ausführen.