ASP.NET 4.5 auf IIS 7.5 mit SQL Server Express 2012 einrichten

Hier mein Vorgehen nach langem und frustrierendem Herumprobieren:

IIS vorbereiten

  1. Verzeichnis für App anlegen und App hineinkopieren
  2. App im IIS-Manager zum Beispiel als neue Site hinzufügen (mit eigenem AppPool)
  3. Anonyme Authentifizierung auf „AppPool-Identity“ festlegen
  4. AppPool-Grundeinstellungen auf .NET 4.0 (integriert) festlegen
  5. Erweiterte AppPool-Einstellungen auf „Benutzerprofil laden = True“ und „Identität = AppPool-Identity“ festlegen
  6. In der Kommandozeile folgende Befehle ausführen:
    icacls <app-path> /grant "IIS APPPOOL\<apppool-name>":(OI)(CI)(RX)
    icacls <app-path>\App_Data /grant "IIS APPPOOL\<apppool-name>":(OI)(CI)(F)

SQL Server vorbereiten

  1. Mit den folgenden Befehlen den SQL Server Express aktualisieren:
    CREATE LOGIN [IIS APPPOOL\<apppool-name>] FROM WINDOWS
    GRANT CREATE DATABASE TO [IIS APPPOOL\<apppool-name>]

Der passende Connection String

Beim Connection String kann es dann wieder etwas hakelig werden, aber der folgende Eintrag funktioniert ganz gut:
Data Source=.\SQLEXPRESS; Initial Catalog=<db-name>; Integrated Security=SSPI; AttachDBFilename=|DataDirectory|<db-name>.mdf; User Instance=true

IIS 7 + SQL Server Express 2008

Leider, leider scheint das bei dieser Kombo nicht so „einfach“ zu sein, denn mit „User Instance=true“ kommt es zu Impersonation-Fehlern und ohne fehlen die Rechte im App_Data-Verzeichnis…

Letzteres lässt sich aber korrigieren, indem man dem User „<host-name>\SQLServerMSSQLUser$<host-name>$SQLEXPRESS“ Vollzugriff auf App_Data gewährt – dann kann „User Instance“ komplett weggelassen werden.

Schreibe einen Kommentar