verwendetes Datenbanksystem: SQL Server 2014
Hätte eine Frage, und zwar bekomme ich beim publishen meiner Website eine Fehlermeldung: > Fehlermeldung:
An error occured while processing your request.
Ich denke das ist darauf zurückzuführen, dass mit dem falschen Benutzer versucht wird auf die DB zuzugreifen. Jetzt ist meine Frage wo ich Passwort und Benutzer im Connectionstring angebe, um immer mit diesem Benutzer zuzugreifen?
Vollständig Exception wäre hilfreich. So ist der Fehler reines Glaskugelschauen.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Hi,
naja - du gibst nun echt zu wenig Input.
Aber: Unter der Vermutung, dass du den IIS einsetzt - wird hier vermutlich dein IIS-User eingesetzt. Sofern du für die Website einen eigenen Pool und einen eigenen User hast (wie's sich gehört) - solltest du diesem lieber die nötigen Rechte geben als was im ConnectionString zu machen.
LG
@Taipi88
Ja das stimmt, ich habe eben nirgends etwas angegeben und dadurch wird der standardbenutzer des IIS verwendet.
Es gibt für den Datenzugriff eben einen neu angelegten Sysuser mit dem auf die Daten zugegriffen werden soll.
Nur weis ich eben nicht wie ich das mache, dass dann immer mit diesem auf die Daten zugegriffen wird??
Meine Vermutung war eben irgendwas im App.Config in meinem .DataAccess Project? oder doch im .Web Project?
Sry für die ungenaue Beschreibung.
Hi,
naja - wie dein ConnectionString aussehen muss kannst du z.B. auf folgender Seite gucken:
https://www.connectionstrings.com/sql-server-2012/
Was deine App.Config angeht - Es gibt immer nur eine - für ASP.NET heisst das allerdings Web.config. (heisst: nimm die Web.Config deines letztendlich zu startenden Projekts)
Innerhalb dieser Web.Config - musst du entsprechende Eintragungen machen - wie die aussehen - können wir nicht wissen.
Üblicherweise enthält dein .DataAccess-Projekt allerdings wahrscheinlich eine App.config, an deren Beispiel du dich langhangeln kannst.
Dazu gehört: Das definieren einer entsprechenden Section, wie z.B.:
<section name="EasySoftener.Wcf.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
Und dann entsprechende Einträge für die Section:
<applicationSettings>
<EasySoftener.Wcf.Properties.Settings>
<setting name="SmtpUser" serializeAs="String">
<value>...</value>
</setting>
LG
Wenn Impersonation funktioniert - und Du direkten IIS Zugriff hast - dann einfach im IIS einen eigenen AppPool erzeugen, dort den User hinterlegen und der Anwendung den AppPool zuweisen.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Danke für die Schnelle Antwort,
habe deine Seite gesehen, jedoch habe ich einen connectionString der wie folgt aussieht:
<add name="monitoringEntities" connectionString="metadata=res://*/DashboardModel.csdl|res://*/DashboardModel.ssdl|res://*/DashboardModel.msl;provider=System.Data.SqlClient;provider connection string="data source=LAGDBTEDMS;initial catalog=monitoring;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
wüsste echt nicht wo ich da Servername, User Id, und Passwort hinschreibe?
und für was brauche ich dann noch section?
bzw sieht das bei mir so aus:
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
Das obere Beispiel ist EF mit Database First. Dein Connection String ist vermutlich mit Code First (POCOs).
Die Section ist aber nicht Dein ConnectionString.
Du musst noch irgendwo die Definition haben, auf welchen SQL SErver Du gehst. Wenn Du die Standardtemplates verwendest, dann ganz unten unter "<EntityFramework>"
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
das steht noch unten unter entityFramework:
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="mssqllocaldb" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
der Server steht schon in dem <add Tag (source=LAGDBTEDMS => Server und catalog=Monitoring => DB)
Du hast jetzt aber noch kein Add-Tag von Dir gezeigt, oder finde ich den in diesem Thread nicht?!
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Doch, hatta
<add name="monitoringEntities" connectionString="metadata=res://*/DashboardModel.csdl|res://*/DashboardModel.ssdl|res://*/DashboardModel.msl;provider=System.Data.SqlClient;provider connection string="data source=LAGDBTEDMS;initial catalog=monitoring;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
Ach, der DbFirst String.
Dann Integrated Security raus nehmen (oder auf False setzen), weil das sonst den aktuellen Windows Account nimmt.
Anschließend User ID=myUsername;Password=myPassword;
mitgeben.
Der tatsächliche ConnectionString ist hier zwischen den beiden "
Alles andere ist EF Core DBFirst Overhead. Hier gehört auch der SQL ConnectionString rein, der sich dann zB nicht mehr von www.connectionstrings.com unterscheidet.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Habe das jetzt ausprobiert und mein Connectionstring zwischen den " sieht wie folgt aus:
data source=LAGDBTEDMS;initial catalog=monitoring;integrated security=False;User Id=sys_lsn_iem_dashboard;Password=myPassword;MultipleActiveResultSets=True;App=EntityFramework
brauche ich da bei dem Benutzer auch das @Firma.at?
habe es mit probiert und es funktionierte auch nicht. kann es sein, dass ich Domäne/sys_lsn_iem_dashboard oder so schreiben muss?
bekomme jetzt immer eine
Fehlermeldung:
EntityException was not handled by user codeAdditional Information: The underlying provider failed on Open.
also anscheinend mache ich noch irgendetwas falsch?
ok, beim Debuggen sehe ich jetzt in der inner exception: Login failed.
Dasselbe Problem besteht auch wenn ich die Benutzerdaten meines Standardusers eingebe, mit dem ich bis jetzt beim Entwickeln immer automatisch zugegriffen habe, d. h., dass ich etwas mit den Benutzerdaten falsch eingebe vermute ich.
Probiere zuerst Dich mit dem SQL Management Studio mit User und Kennwort einzuloggen. Dann mit Connectionstring.
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3