Laden...

Anwendung funktioniert ausschließlich auf 64 Bit

Erstellt von ThomasE. vor 4 Jahren Letzter Beitrag vor 4 Jahren 1.196 Views
T
ThomasE. Themenstarter:in
461 Beiträge seit 2013
vor 4 Jahren
Anwendung funktioniert ausschließlich auf 64 Bit

verwendetes Datenbanksystem: SQL Server 2014 (Express)

Hallo zusammen,

bin gestern auf ein Problem gestoßen, wie ich es bisher nie hatte.

Es geht hier um einen Übergangskonfigurator, der sich mehr oder weniger direkt mit dem SQL Server verbindet.

Wenn meine Anwendung unter Any CPU erstellt wird und man versucht dann eine Verbindung zum SQL-Server herzustellen, kommt folgende Fehlermeldung:> Fehlermeldung:

System.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 0 - The remote computer refused the network connection.) ---> System.ComponentModel.Win32Exception (0x80004005): The remote computer refused the network connection
at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, DbConnectionPool pool, String accessToken, Boolean applyTransientFaultHandling, SqlAuthenticationProviderManager sqlAuthProviderManager)
at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions)
at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource1 retry, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource1 retry, DbConnectionOptions userOptions)
at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource1 retry) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource1 retry)
at System.Data.SqlClient.SqlConnection.Open()
...
..
.
ClientConnectionId:00000000-0000-0000-0000-000000000000
Error Number:1225,State:0,Class:20

Sobald ich die Anwendung auf x64 erstelle, gibt es keine Probleme.

Das Betriebssystem ist ein 64Bit System.

Hatte dieses bis jetzt noch nicht und wollte fragen, ob mir wer einen Hinweis dazu geben kann?

Vielen Dank im Voraus,
Thomas

Ich habe den Titel mal angepasst, so dass Suchende auch etwas damit anfangen können. EDIT: Ich sollte beim Wort "Shift" im Titel das "f" nicht vergessen... 😄

4.931 Beiträge seit 2008
vor 4 Jahren

Wird denn mit "AnyCPU" die Anwendung als 64bit ausgeführt (kannst du mittels Environment.Is64BitProcess überprüfen)?

16.807 Beiträge seit 2008
vor 4 Jahren

Könntest nen paar mehr Infos rausgeben?
.NET Framework? .NET Core? Welche Version?

Es gab mal einen Bug in System.Data.SqlClient, der sich aber nur auf .NET Core und eine x64 Linux Runtime Version ausgewirkt hat.

Hinweis: System.Data.SqlClient ist mittlerweile obsolete und bekommt keine Weiterentwicklung mehr.
Microsoft.Data.SqlClient ist die Zukunft.

T
ThomasE. Themenstarter:in
461 Beiträge seit 2013
vor 4 Jahren

Hallo,

danke für die Antworten.

Die Anwendung wird unter x86 ausgeführt.

.NET Framework 4.5.1, dachte mir schon das ich dies hinzuschreiben hätte sollen... da habt ihr nun schon geantwortet 😉

Ich habe den Titel mal angepasst, so dass Suchende auch etwas damit anfangen können. EDIT: Ich sollte beim Wort "Shift" im Titel das "f" nicht vergessen... 😄

4.931 Beiträge seit 2008
vor 4 Jahren

Hast du denn eine Assembly in dem Projekt, welche explizit für x86 kompiliert wurde?

16.807 Beiträge seit 2008
vor 4 Jahren

.. oder hast Du versehentlich ein SqlClient-Paket hinzugefügt, das explizit für eine Architektur vorgesehen ist?

T
ThomasE. Themenstarter:in
461 Beiträge seit 2013
vor 4 Jahren

Nein habe ich nicht, sind alle durchgehend entweder Any CPU oder x64.

Ha aber bei der WPF Anwendung ist im Build Reiter ein Häkchen unter Plattformziel mit 32 Bit bevorzugen!

Nachdem ich es entfernte, funktionierte es klaglos....

Habe nie wirklich darauf geachtet, war bisher auch nicht notwendig, tja, wieder was dazugelernt...

Danke für die Hilfe und auch danke Abt für deinen Hinweis mit den veralteten SqlClient!

[Edit1]Nein Abt, sowas mache ich nicht. Da hätte es sicher schon viel früher Probleme gegeben, wie es sich herausstellte war es der übergangs-WPF-Client.[/Edit1]

SG Thomas

Ich habe den Titel mal angepasst, so dass Suchende auch etwas damit anfangen können. EDIT: Ich sollte beim Wort "Shift" im Titel das "f" nicht vergessen... 😄