2013-03-13 3 views
8

Ich habe eine problematische Verbindung zu einer SQL Server 2012-Instanz unter Windows Server 2012. Ich habe eine .NET 4.5 Windows Forms-Anwendung auf einem installiert Client-Rechner ist Windows 7. der Fehler ich läuft dies:.NET 4.5 Formulare App Verbindung zu SQL Server 2012 schlägt fehl: SSL-Provider, Fehler: 0

A connection was successfully established with the server, but then an error 
occurred during the pre-login handshake. (provider: SSL Provider, error: 0 - 
The wait operation timed out.) 

Meine Verbindungszeichenfolge wie folgt aussieht:

server=SERVERNAME;database=DATABASENAME;User Id=someuser;password=somepassword;Timeout=60;app=LabelMaker 

ich von der Client-Maschine auf dem SQL Server versucht, Verbinden mit QueryExpress und dass hat funktioniert! Meine App ist 64-Bit, wenn das hilft. Ich habe jede Einstellung überprüft, die ich mir in SQL Server vorstellen kann. In den Protokollen (Shared Memory und TCP/IP) sind keine Zwangsverschlüsselungen aktiviert, die Domänenfirewall ist auf dem Server geöffnet. Ich habe verschiedene Verbindungszeichenfolgen mit allen möglichen unerhörten Parametern ausprobiert, immer das gleiche Ergebnis, Fehler.

Ich bin wirklich verwirrt darüber, warum es mit QueryExpress funktioniert? Meine App funktioniert, wenn sie mit einer Remote-Instanz von SQL SERVER Express auf einem anderen Computer verbunden ist. Sie funktioniert auch, wenn ich sie auf dem Computer mit SQL Server 2012 ausführe.

Ich habe auch versucht, die Verbindung zum Server vom Client-Rechner mit LinqPad und das ist auch wirklich komisch, mit der neuen Version basierend auf net4/4.5 (Version: 4.43.06) schlägt es fehl, aber wenn ich das alte benutze Version von Linqpad (2.x) basierend auf net3.5 funktioniert es!

Es ist wie Panda Security scheint das Problem verursacht, lief ich

netsh winsock show catalog 

und gefunden, ein paar Panda Einträge Ich habe dann einen Reset

netsh winsock reset 

jetzt meine Anwendung funktioniert gut, ich dann Neustart der Maschine, führte den Katalog Befehl erneut, die Panda-Einträge waren zurück und meine App hat das gleiche Problem wie zuvor.

Hier sind die Panda Einträge im Winsock-Katalog: https://gist.github.com/pellehenriksson/5159883

Alle Ideen und Vorschläge geschätzt werden.

UPDATE

Panda Security v5 ist die Ursache für dieses Problem wurde dies durch Panda Unterstützung bestätigt. Die Ursache des Problems wird von Alex unten erklärt. Der Kunde wird ein Upgrade auf v6 von Panda Security durchführen, ich werde es nach dem Upgrade erneut testen.

SCHLUSSFOLGERUNG Der Umstieg auf Panda Security v6.0 behob dieses Problem.

+0

Scheint wie ein Firewall-Problem. Lesen Sie das folgende Thema: [Konfigurieren Sie die Windows-Firewall für den SQL Server-Zugriff] (http://technet.microsoft.com/de-de/library/cc646023.aspx). Ist Ihre Anwendung mit dem Datenbankmodul/Analysis Services/Reporting verbunden? –

+0

Ich bin mir ziemlich sicher, dass dies kein Firewall-Problem ist, ich kann eine Verbindung mit einem Client herstellen, der in .NET 2.0 geschrieben wurde. Wenn Panda LSPs entfernt werden, funktioniert es auch für .NET 4.5. – Pelle

+0

Können Sie auch die Verbindungszeichenfolge hinzufügen? –

Antwort

6

Dies scheint ein nicht von Microsoft stammendes Problem zu sein: Visual Studio 11 beta installation disabled my abillity to connect remote MS SQL Server but not local databases.

Das Ticket wurde als externe geschlossen.

Die einzige Lösung zur Verfügung zu diesem Zeitpunkt auf Microsoft Connect ist:

Posted by Lars Joakim Nilsson on 5/4/2012 at 5:03 AM

My machine had this problem. The work around for me was to remove non-IFS LSP installed Winsock Catalog Provider. Se http://support.microsoft.com/kb/2568167 /Lars Nilsson

Der SetFileCompletionNotificationModes API causes an IO completion port not work correctly with a non-IFS LSP installed Link, um die Auflösung gibt:

Not specifying the FILE_SKIP_COMPLETION_PORT_ON_SUCCESS flag or removing any non-IFS Winsock LSPs installed. Also moving from a non-IFS LSP to Windows Filter Platform (WFP) can resolve this issue.

Also, sollten Sie Panda Security oder als Alternative zu entfernen, Sie können versuchen, netsh winsock reset als Pre-Build-Befehl auszuführen (obwohl ich nicht sicher bin, ob dies ohne einen Neustart wirksam ist) , die Sie Ihre Anwendung entwickeln/debuggen lassen würde.

[UPDATE]

Weitere Informationen zur Anwendungskompatibilität ist hier gegeben: Application Compatibility in the .NET Framework 4.5:

Data

SQLClient

Feature

Ability to connect to a SQL Server database from managed code that runs under the .NET Framework 4.5.

Change

The existing synchronous API code path was modified to add asynchronous support.

Impact

The presence of non-IFS Winsock Base Service Providers (BSPs) or Layered Service Providers (LSPs) may interfere with the ability to connect to SQL Server. For more information, see SetFileCompletionNotificationModes API causes an IO completion port not work correctly with a non-IFS LSP installed on the Microsoft Support website.

+1

Eigentlich funktioniert ein Reset, solange ich den Rechner nicht neu starte. =) Das Problem ist nicht auf meiner Maschine. Es ist ein Problem auf einem Client-Client-Computer. Ich schätze, die Recherche nach Panda Security ist der nächste Schritt. Danke für die Hilfe. – Pelle

2

Ich hasse es zu sagen, aber Visual Studio und meine Microsoft SQL Server Management Studio neu starten gelöst diese Problem.

+0

Es macht keinen Sinn, aber Ihre Lösung hat funktioniert !!!! –

+0

Wie SSMS diesen Fehler verursachen kann ist verwirrend, aber es funktioniert! –

Verwandte Themen