Wer automatisierte Scripts, wie z.b. Erstellen von WebSites im IIS benötigt, sollte sich unbedingt den PowerShell Provider für IIS 7.0 anschauen.
Letztens wollte ich WebDAV mit Basic Authentifizierung ausprobieren, dabei ist die Einstellung im Windows Explorer so gesetzt, dass dies nur über HTTPS funktioniert. (Es gibt einen Windows Registry Key um das auszuschalten, sollte aber natürlich unbedingt vermieden werden, da ansonsten alles im Clear Text übertragen wird).
Somit habe ich das IIS 6 Resource Toolkit herangenommen und mir ein SSL Zertifikat installiert. Nachdem ich im IIS die Binding konfiguriert hatte, wollte ich http://localhost bzw. https://localhost aufrufen, und nichts ging mehr. Ich konnte den IIS nicht mehr starten und es kam folgende Fehlermeldung “IIS Manager Error: The process cannot access the file because it is being used by another process. (Exception from HRESULT: 0×80070020)” – Nachdem ich im Internet nach der Fehlermeldung gesucht hatte, hat sich herausgestellt, dass die HTTPS Konfiguration bereits verwendet wird. – Also habe ich mit cmd >> “netstat -ano -p tcp” nachgeschaut und anhand der PID im Taskmanager die Skype.exe herausgefunden.
Also Skype stoppen, IIS starten und Skype wieder starten. (Skype verwendet danach einen anderen Port)
Bei der Installation des neuen Microsoft WebDAV Extension Module für IIS7 unter Windows Vista ist zu beachten, dass man nicht nur die Windows-Authentifizierung wie in der Installationsanweisung beschrieben wird, sondern auch die URL-Autorisierung aktivieren muss.
Da der IIS7 wirklich so gut wie alle Features nicht von Grund auf installiert hat, müssen diese zuerst noch unter Control Panel (Systemsteuerung), Programs and Features (Programme und Funktionen), Turn Windows features on or off (Windows-Funktionen ein- oder ausschalten),
+ Internet Information Services (Internetinformationsdienste)
-> WWW Services (WWW-Dienste)
-> Security (Sicherheit)
– URL Authorization (URL-Autorisierung)
– Windows Authentication (Windows-Authentifizierung)
nach installiert werden.
Es klingt durch geknallt – ist es wahrscheinlich auch – man weiß nicht ganz ob es lizenzrechtlich ok ist. Aber mich hat einfach gereizt ob es geht. Und ja es geht!
Der einzige logische Anwendungsfall der mir einfällt wäre eine durch xcopy installierbare Webanwendung zu haben die bei einem externen Hoster ohne SQL Server 2005/2008 läuft.
SQL Compact mit xcopy zu deployen ist aber etwas das auch nicht ganz trivial ist – das werde ich mir ein andermal anschauen.
Einfach eine .sdf Datei ins Webprojekt. Dann eine GridView über den Wizard verbinden.
Und dann geht’s nicht – man bekommt folgende Meldung:
SQL Server Compact is not intended for ASP.NET development.
Ok eigentlich logisch. – Aber dann habe ich zu suchen begonnen und bin auf folgendes gekommen:
Man braucht eine Global.asax in der es eine Zeile geben muss damit der SQL Server Compact auch im IIS läuft.
void Application_Start(object sender, EventArgs e)
{
AppDomain.CurrentDomain.SetData(“SQLServerCompactEditionUnderWebHosting”, true);
}
Achtung abhängig von der Version des SQL Ce habe ich unterschiedlich Versionen des keys gefunden, der von mir verwendete ist der richtige für SQL Compact 3.5.
Dazu gibts einen guten Post in einem Blog.
Dann kann man schon auf eine IIS deployen. Allerdings muss in der Web.Config noch der Pfad angepasst werden zur .sdf Datei.