Readdy Write  
0,00 €
Your View Money
Views: Count
Self 20% 0
Your Content 60% 0

Users by Links 0
u1*(Content+Views) 10% 0
Follow-Follower 0
s2*(Income) 5% 0

Count
Followers 0
Login Register as User

Asp Net Core MVC : Login failed for user IIS APPPOOL\Readdy

19.04.2018 (👁9093)

Asp Net Core MVC : Login failed for user ''''''''''''''''IIS APPPOOL\Readdy''''''''''''''''.

 

Folgende Fehlermeldung kommt, wenn man bei einer Asp Net Core 2 MVC Anwendung auf einen SQL Server zugreifen möchte.

-> An error occurred using the connection to database

 

Status: gelöst

 

Error, Fehlermeldung in der stdOut Logdatei

An error occurred using the connection to database ''''''''''''''''readdy'''''''''''''''' on server ''''''''''''''''.\SQLEXPRESS''''''''''''''''.

System.Data.SqlClient.SqlException (0x80131904): Cannot open database "readdy" requested by the login. The login failed.

Login failed for user ''''''''''''''''IIS APPPOOL\Readdy''''''''''''''''.

 

 

Problem:

Der IIS Internetuser und die IIS AspNetCore Anwendung haben keinen Zugriff auf den local SQL Server als SQLExpress Server.

Das ist auch sinnvoll, denn sonst könnte ja jeder Unbefugte in auf die Datenbank zugreifen.

Also muss man dem aktuellen Internet-Benutzer die Rechte zum Zugriff auf den SQL Server zuteilen.

 

Lösung:

Man erstellt einen neuen Benutzer,

Weißt diesen neuen Benutzer als Identiy im ApplicationPool zu

Und zusätzlich gibt man die Datenbank als Mapping für diesen User im SQL Securtiy Bereich zu.

 

 

 

 

Schritt 1: Windows Benutzer erstellen

Unter Computer Management->System Tools->Local Users and Groups

Erstellt man bei den Usern einen neuen User un gibt diesem ein festes Passwort, welches nicht erlischt

 

 

Schritt2: Applicationpool erstellen

Unter dem IIS Server ->Applications Pools erstellt man mit Add Application Pools einen neuen Application Pool

Diesem gibt man bei NET CLR Version : unmanaged Code ein, da dieser in AspNetCore Anwendungen nicht vom IIS. verwaltet wird

 

Applicationpool ->Identity

Und trägt im neuen Application Pool bei Advanced Settings die Identity auf den neuen Windows User ein

 

Applicationpool ->Identity->Custom User eintragen

Unter Custom User wählt man dann den neuen Windows Benutzer ein und bestätigt diesen mit dem vorgegebenen Passwort

Applicationpool einstellen

Dann stellt man in der AspNet Core Anwendung unter Basic Settings

Dann in Application pool mit Select öffnen und den neuen Applicationpool AspNetCore_Sql_User auswählen

Schritt 3:

Neuen SQL Server User erstellen

Im SQL Server erstellt man unter SQL Server->Security ->Logins

Einen neuen User.

Beim neuen User gibt man dann den neu erstellen Windows-User an wie Readdy-Server\AspNetCore_SQL_User

 

Schritt 4: Datenbank->User Mapping

Und trägt dann unter Mapping den User in der Datenbank ein

Hierzu wählt man unter SQL Server->Security->Logins den neuen SQL User login aus.

In dem Dialog: Login Properties gibt man dann bei User Mapping -> die Tabelle als aktiv an.

Im Unteren Bereich gibt man die Rollen Database role memberschip  db_datareader, db_datawriter und weitere ein.

 

 

 

Neustart der AspNetCore Anwendungen

Wenn man dann die Asp Core2 Anwendung im Browser mit der URL der Webseite anspricht, sollten schon die neuen SQL Daten aus der Datebank erscheinen

 

 

 

 

 

 

 

 

 

 

 

Log Details Error-Log

..

Application started. Press Ctrl+C to shut down.

fail: Microsoft.EntityFrameworkCore.Database.Connection[20004]

      An error occurred using the connection to database ''''''''''''''''readdy'''''''''''''''' on server ''''''''''''''''.\SQLEXPRESS''''''''''''''''.

System.Data.SqlClient.SqlException (0x80131904): Cannot open database "readdy" requested by the login. The login failed.

Login failed for user ''''''''''''''''IIS APPPOOL\Readdy''''''''''''''''.

   at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling)..

C:\_Daten\Desktop\VS_Projects\Web\Readdy\Readdy\Readdy\Controllers\NotesController.cs:line 42

..