Ich habe ein Webprojekt (C # Asp.Net, EF 4, MS SQL 2008 und IIS 7) und muss es lokal auf IIS 7 migrieren (funktioniert derzeit problemlos mit CASSINI).
Vor Ort in IIS habe ich meine Default Web Site
mit meiner Bereitstellung. Sowohl meine Bereitstellung als auch Default Web Site
die Verwendung von Pool ASP.NET v4.0 (siehe Bild für Einstellungen) des Pool-Ziel-Frameworks 4 als mein Webprojekt.
Beim Besuch der Website zeigt der Browser die Seite nicht an und lässt den Browser stattdessen die Seite herunterladen.
Ich habe andere Projekte, die lokal auf IIS ausgeführt werden, und sie funktionieren ohne Probleme (aber sie verwenden kein Entity Framework).
Bei Verwendung des Ereignisprotokolls werden folgende Fehler angezeigt:
Exception information:
Exception type: EntityException
Exception message: The underlying provider failed on Open.
at System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(Boolean openCondition, DbConnection storeConnectionToOpen, DbConnection originalConnection, String exceptionCode, String attemptedOperation, Boolean& closeStoreConnectionOnFailure)
Login failed for user 'IIS APPPOOL\ASP.NET v4.0'.
at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
at System.Data.SqlClient.SqlConnection.Open()
at System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(Boolean openCondition, DbConnection storeConnectionToOpen, DbConnection originalConnection, String exceptionCode, String attemptedOperation, Boolean& closeStoreConnectionOnFailure)
UPDATE: Sie können in den Ressourcen zu dieser Frage lesen, dass Berechtigungen für MS SQL 2008 manuell erteilt werden müssen, wie in seiner Antwort erläutert. Unter IIS 7.5 und MS SQL 2008 R2 sollte das manuelle Festlegen von Berechtigungen nicht erforderlich sein.