Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
[gelöst] Applikation mit Entity Framework 6 bricht mit einem SQL Exception ab
Dolce
myCSharp.de - Member



Dabei seit:
Beiträge: 194
Herkunft: Luzern CH

Themenstarter:

[gelöst] Applikation mit Entity Framework 6 bricht mit einem SQL Exception ab

beantworten | zitieren | melden

Ich habe meine erste Applikation mit EF6 von Grund auf selbst entworfen implementiert und versuche diese nun beim Kunden zum Laufen zu bringen.
Leider bricht die Applikation beim Starten mit einer SQL Exception ab.

Die Anwendung wurde mit dem Ziel Framework 4.5.2 implementiert

Der Rechner hat Windows 10 installiert und die Applikation versucht eine Verbindung zum SQL Server (2008 Version) aufzubauen. Ist evtl. der SQL Server zu alt?
Alle Angaben in der Connection sind richtig, und auch die Datenbank ist inkl. der __MigrationHistory genau gleich wie auf meiner Entwicklungsumgebung.

Muss trotzdem im OS enthaltenen .Net Framework, die "Entity Framework Runtime" & ggf. die "Entiity Framework Tools" auf jedem Rechner nachinstalliert werden?
Fehler
Anwendung: xy.exe
Frameworkversion: v4.0.30319
Beschreibung: Der Prozess wurde aufgrund einer unbehandelten Ausnahme beendet.
Ausnahmeinformationen: System.Data.SqlClient.SqlException
bei System.Data.SqlClient.SqlConnection.OnError(System.Data.SqlClient.SqlException, Boolean, System.Action`1<System.Action>)
bei System.Data.SqlClient.SqlInternalConnection.OnError(System.Data.SqlClient.SqlException, Boolean, System.Action`1<System.Action>)
bei System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(System.Data.SqlClient.TdsParserStateObject, Boolean, Boolean)
bei System.Data.SqlClient.TdsParser.TryRun(System.Data.SqlClient.RunBehavior, System.Data.SqlClient.SqlCommand, System.Data.SqlClient.SqlDataReader, System.Data.SqlClient.BulkCopySimpleResultSet, System.Data.SqlClient.TdsParserStateObject, Boolean ByRef)
bei System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
bei System.Data.SqlClient.SqlDataReader.get_MetaData()
bei System.Data.SqlClient.SqlCommand.FinishExecuteReader(System.Data.SqlClient.SqlDataReader, System.Data.SqlClient.RunBehavior, System.String, Boolean, Boolean, Boolean)
bei System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(System.Data.CommandBehavior, System.Data.SqlClient.RunBehavior, Boolean, Boolean, Int32, System.Threading.Tasks.Task ByRef, Boolean, Boolean, System.Data.SqlClient.SqlDataReader, Boolean)
bei System.Data.SqlClient.SqlCommand.RunExecuteReader(System.Data.CommandBehavior, System.Data.SqlClient.RunBehavior, Boolean, System.String, System.Threading.Tasks.TaskCompletionSource`1<System.Object>, Int32, System.Threading.Tasks.Task ByRef, Boolean ByRef, Boolean, Boolean)
bei System.Data.SqlClient.SqlCommand.RunExecuteReader(System.Data.CommandBehavior, System.Data.SqlClient.RunBehavior, Boolean, System.String)
bei System.Data.SqlClient.SqlCommand.ExecuteReader(System.Data.CommandBehavior, System.String)
bei System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(System.Data.CommandBehavior)
bei System.Data.Common.DbCommand.ExecuteReader(System.Data.CommandBehavior)
bei System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher+<>c.<Reader>b__6_0(System.Data.Common.DbCommand, System.Data.Entity.Infrastructure.Interception.DbCommandInterceptionContext`1<System.Data.Common.DbDataReader>)
bei System.Data.Entity.Infrastructure.Interception.InternalDispatcher`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].Dispatch[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.__Canon, System.Func`3<System.__Canon,System.__Canon,System.__Canon>, System.__Canon, System.Action`3<System.__Canon,System.__Canon,System.__Canon>, System.Action`3<System.__Canon,System.__Canon,System.__Canon>)
bei System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.Reader(System.Data.Common.DbCommand, System.Data.Entity.Infrastructure.Interception.DbCommandInterceptionContext)
bei System.Data.Entity.Internal.InterceptableDbCommand.ExecuteDbDataReader(System.Data.CommandBehavior)
bei System.Data.Common.DbCommand.ExecuteReader(System.Data.CommandBehavior)
bei System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.ExecuteStoreCommands(System.Data.Entity.Core.EntityClient.EntityCommand, System.Data.CommandBehavior)

Ausnahmeinformationen: System.Data.Entity.Core.EntityCommandExecutionException
bei System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.ExecuteStoreCommands(System.Data.Entity.Core.EntityClient.EntityCommand, System.Data.CommandBehavior)
bei System.Data.Entity.Core.Objects.Internal.ObjectQueryExecutionPlan.Execute[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.Data.Entity.Core.Objects.ObjectContext, System.Data.Entity.Core.Objects.ObjectParameterCollection)
bei System.Data.Entity.Core.Objects.ObjectQuery`1+<>c__DisplayClass41_0[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].<GetResults>b__1()
bei System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.Func`1<System.__Canon>, System.Data.Entity.Infrastructure.IDbExecutionStrategy, Boolean, Boolean)
bei System.Data.Entity.Core.Objects.ObjectQuery`1+<>c__DisplayClass41_0[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].<GetResults>b__0()
bei System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.Func`1<System.__Canon>)
bei System.Data.Entity.Core.Objects.ObjectQuery`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].GetResults(System.Nullable`1<System.Data.Entity.Core.Objects.MergeOption>)
bei System.Data.Entity.Core.Objects.ObjectQuery`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].<System.Collections.Generic.IEnumerable<T>.GetEnumerator>b__31_0()
bei System.Data.Entity.Internal.LazyEnumerator`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].MoveNext()
bei System.Linq.Enumerable+WhereSelectEnumerableIterator`2[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].MoveNext()
bei System.Linq.Enumerable.Count[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.Collections.Generic.IEnumerable`1<System.__Canon>)
bei AenderungswesenUserVerwaltung.UserAdministration..ctor()
bei AenderungswesenUserVerwaltung.Program.Main()

Über einen Tipp oder Link wäre ich sehr froh...

Beste Grüße Dolce
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Dolce am .
Wer Rechtschreibfehler findet, darf sie behalten.
private Nachricht | Beiträge des Benutzers
HansFred
myCSharp.de - Member



Dabei seit:
Beiträge: 49

beantworten | zitieren | melden

eine entity framework oder entity framework tools runtime gibt es nicht die abhängigkeiten werden mit dlls ausgeliefert
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 3955

beantworten | zitieren | melden

Du solltest die Exception (in UserAdministration..ctor()) mal abfangen und dessen Message ausgeben bzw. loggen lassen.

Edit:
Ich benutze zum Loggen von Exceptions häufig diese Hilfsmethode, um auch alle InnerException.Message-Texte zu erhalten:


public static string CreateExceptionText(Exception e, string title = null)
{
	var str = new StringBuilder(64);

	if (title != null)
		str.AppendLine(title);

	while (e != null)
	{
		str.AppendLine(e.Message);
		e = e.InnerException;
	}

	return str.ToString();
}
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Th69 am .
private Nachricht | Beiträge des Benutzers
Dolce
myCSharp.de - Member



Dabei seit:
Beiträge: 194
Herkunft: Luzern CH

Themenstarter:

beantworten | zitieren | melden

Vielen dank Th69

Ich erweitere meine Applikation um die erweiterte Logger Funktion. Dann werde ich morgen sehen, ob beim Kunden weitere wertvolle Informationen geloggt werden.

Es ist immer Käse, wenn Applikationen beim Entwickler laufen, aber beim Kunden nicht starten wollen...

Gruß Dolce
Wer Rechtschreibfehler findet, darf sie behalten.
private Nachricht | Beiträge des Benutzers
Dolce
myCSharp.de - Member



Dabei seit:
Beiträge: 194
Herkunft: Luzern CH

Themenstarter:

beantworten | zitieren | melden

Leider hat meine Erweiterung zu keinem Ergebnis geführt. Da die Applikation nicht gestartet werden kann, werden auch keine Logdateien erzeugt.
Ebenfalls habe ich dem ganzen Applikationsorder beim Kunden die Rechte für den Benutzer "Jeder" auf Vollzugriff gesetzt.

Könnten die Fehlermeldungen auf fehlende dll's hindeuten?

Folgende Fehlermeldungen werden in das Event-Log geschrieben:
Fehler
Name der fehlerhaften Anwendung: AenderungswesenUserVerwaltung.exe, Version: 1.0.0.0, Zeitstempel: 0x9fc4e8b6
Name des fehlerhaften Moduls: KERNELBASE.dll, Version: 10.0.19041.572, Zeitstempel: 0x979ddb1d
Ausnahmecode: 0xe0434352
Fehleroffset: 0x00129ab2
ID des fehlerhaften Prozesses: 0x2558
Startzeit der fehlerhaften Anwendung: 0x01d6c3e3fb0f042a
Pfad der fehlerhaften Anwendung: C:\AenderungswesenUserVerwaltung.exe
Pfad des fehlerhaften Moduls: C:\Windows\System32\KERNELBASE.dll
Berichtskennung: 3d1ba573-d2bb-4f2c-9876-db0ec01bc472
Vollständiger Name des fehlerhaften Pakets:
Anwendungs-ID, die relativ zum fehlerhaften Paket ist:
Fehler
Anwendung: AenderungswesenUserVerwaltung.exe
Frameworkversion: v4.0.30319
Beschreibung: Der Prozess wurde aufgrund einer unbehandelten Ausnahme beendet.
Ausnahmeinformationen: System.Data.SqlClient.SqlException
bei System.Data.SqlClient.SqlConnection.OnError(System.Data.SqlClient.SqlException, Boolean, System.Action`1<System.Action>)
bei System.Data.SqlClient.SqlInternalConnection.OnError(System.Data.SqlClient.SqlException, Boolean, System.Action`1<System.Action>)
bei System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(System.Data.SqlClient.TdsParserStateObject, Boolean, Boolean)
bei System.Data.SqlClient.TdsParser.TryRun(System.Data.SqlClient.RunBehavior, System.Data.SqlClient.SqlCommand, System.Data.SqlClient.SqlDataReader, System.Data.SqlClient.BulkCopySimpleResultSet, System.Data.SqlClient.TdsParserStateObject, Boolean ByRef)
bei System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
bei System.Data.SqlClient.SqlDataReader.get_MetaData()
bei System.Data.SqlClient.SqlCommand.FinishExecuteReader(System.Data.SqlClient.SqlDataReader, System.Data.SqlClient.RunBehavior, System.String, Boolean, Boolean, Boolean)
bei System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(System.Data.CommandBehavior, System.Data.SqlClient.RunBehavior, Boolean, Boolean, Int32, System.Threading.Tasks.Task ByRef, Boolean, Boolean, System.Data.SqlClient.SqlDataReader, Boolean)
bei System.Data.SqlClient.SqlCommand.RunExecuteReader(System.Data.CommandBehavior, System.Data.SqlClient.RunBehavior, Boolean, System.String, System.Threading.Tasks.TaskCompletionSource`1<System.Object>, Int32, System.Threading.Tasks.Task ByRef, Boolean ByRef, Boolean, Boolean)
bei System.Data.SqlClient.SqlCommand.RunExecuteReader(System.Data.CommandBehavior, System.Data.SqlClient.RunBehavior, Boolean, System.String)
bei System.Data.SqlClient.SqlCommand.ExecuteReader(System.Data.CommandBehavior, System.String)
bei System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(System.Data.CommandBehavior)
bei System.Data.Common.DbCommand.ExecuteReader(System.Data.CommandBehavior)
bei System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher+<>c.<Reader>b__6_0(System.Data.Common.DbCommand, System.Data.Entity.Infrastructure.Interception.DbCommandInterceptionContext`1<System.Data.Common.DbDataReader>)
bei System.Data.Entity.Infrastructure.Interception.InternalDispatcher`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].Dispatch[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.__Canon, System.Func`3<System.__Canon,System.__Canon,System.__Canon>, System.__Canon, System.Action`3<System.__Canon,System.__Canon,System.__Canon>, System.Action`3<System.__Canon,System.__Canon,System.__Canon>)
bei System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.Reader(System.Data.Common.DbCommand, System.Data.Entity.Infrastructure.Interception.DbCommandInterceptionContext)
bei System.Data.Entity.Internal.InterceptableDbCommand.ExecuteDbDataReader(System.Data.CommandBehavior)
bei System.Data.Common.DbCommand.ExecuteReader(System.Data.CommandBehavior)
bei System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.ExecuteStoreCommands(System.Data.Entity.Core.EntityClient.EntityCommand, System.Data.CommandBehavior)

Ausnahmeinformationen: System.Data.Entity.Core.EntityCommandExecutionException
bei System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.ExecuteStoreCommands(System.Data.Entity.Core.EntityClient.EntityCommand, System.Data.CommandBehavior)
bei System.Data.Entity.Core.Objects.Internal.ObjectQueryExecutionPlan.Execute[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.Data.Entity.Core.Objects.ObjectContext, System.Data.Entity.Core.Objects.ObjectParameterCollection)
bei System.Data.Entity.Core.Objects.ObjectQuery`1+<>c__DisplayClass41_0[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].<GetResults>b__1()
bei System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.Func`1<System.__Canon>, System.Data.Entity.Infrastructure.IDbExecutionStrategy, Boolean, Boolean)
bei System.Data.Entity.Core.Objects.ObjectQuery`1+<>c__DisplayClass41_0[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].<GetResults>b__0()
bei System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.Func`1<System.__Canon>)
bei System.Data.Entity.Core.Objects.ObjectQuery`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].GetResults(System.Nullable`1<System.Data.Entity.Core.Objects.MergeOption>)
bei System.Data.Entity.Core.Objects.ObjectQuery`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].<System.Collections.Generic.IEnumerable<T>.GetEnumerator>b__31_0()
bei System.Data.Entity.Internal.LazyEnumerator`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].MoveNext()
bei System.Linq.Enumerable+WhereSelectEnumerableIterator`2[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].MoveNext()
bei System.Linq.Enumerable.Count[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.Collections.Generic.IEnumerable`1<System.__Canon>)
bei AenderungswesenUserVerwaltung.UserAdministration..ctor()
bei AenderungswesenUserVerwaltung.Program.Main()
Wer Rechtschreibfehler findet, darf sie behalten.
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15536
Herkunft: BW

beantworten | zitieren | melden

Zitat von Dolce
Es ist immer Käse, wenn Applikationen beim Entwickler laufen, aber beim Kunden nicht starten wollen...

Man das auch so ausdrücken:

Es ist immer Käse, wenn Entwickler im Jahr 2020 immer noch Logging-Mechanismen nicht oder falsch implementieren, sodass kein Mensch erkennen kann, was auf einem Nicht-Dev-System falsch läuft ;-)
Sql-Exceptions vermeidet man übrigens vor Auslieferung, indem man Integrationstests fährt.

Seit über 10 Jahren gibts den "Standard" des Full Structured Loggings und seit über 6 Jahren die Implementierung von Serilog für die .NET Welt.
Wer da immer noch nicht richtig loggt, der hat das entsprechend auch verdient ;-)

Aber zum Problem:
Eine System.Data.Entity.Core.EntityCommandExecutionException hat _immer_ eine Exception-Message; hier System.Data.SqlClient.SqlException.

Eine System.Data.SqlClient.SqlException hat _immer_ eine Exception-Message, zB. "invalid column name".
Da diese Message in Deinem Beitrag fehlt kann Dir hier auch keiner beantworten, was der Exception-Grund ist.
Wahrscheinlich kannst Du das Problem auch selbst beheben, wenn Du die Message liest (wofür Du sie natürlich loggen musst) ;-)
private Nachricht | Beiträge des Benutzers
Dolce
myCSharp.de - Member



Dabei seit:
Beiträge: 194
Herkunft: Luzern CH

Themenstarter:

beantworten | zitieren | melden

Ich will euch nicht vorenthalten, was der Grund war.

Der Grund war, das mein Projekt korrupt war. Ich bin heute darüber gestolpert, als ich eine setup.exe für diese Applikation erstellen wollte. Da gab es ordentlich viele Fehlermeldungen, das gewisse dll's nicht in das Zielverzeichnis kopiert werden können da nicht vorhanden.
Nun, die dll's waren im Source Verzeichnis alle vorhanden.

Also habe ich pragmatisch ein neues Projekt angelegt und step-by-step alle Komponenten vom alten Projekt in das neue Projekt kopiert.

Anschließend konnte eine setup.exe erzeugt werden, welche beim Kunden auch zum gewünschten Ergebnis geführt hat.

Für eure Unterstützung bedanke ich mich recht herzlich
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Dolce am .
Wer Rechtschreibfehler findet, darf sie behalten.
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15536
Herkunft: BW

beantworten | zitieren | melden

Versteh ich das richtig, dass Du lokal das Setup für den Kunden erzeugst und nicht über ein Buildsystem?
Dann solltest das mal in Angriff nehmen :-)
private Nachricht | Beiträge des Benutzers
Dolce
myCSharp.de - Member



Dabei seit:
Beiträge: 194
Herkunft: Luzern CH

Themenstarter:

beantworten | zitieren | melden

Auf jeden Fall, nur man kann nicht alles auf einmal machen. :-)
Wer Rechtschreibfehler findet, darf sie behalten.
private Nachricht | Beiträge des Benutzers