Benutzer mit den meisten Antworten
GetDataSources hängt sich auf - Nicht für SQL Server 10.0.1600 geeignet?

Frage
-
Hallo,
ich habe ein VB.NET - Programm das unter Windows XP Sp3 lief und jetzt hängt es sich unter Windows 7 auf.
Ich habe im November letzten Jahres ein Systemwechsel gemacht. Ich bin von Windows XP Sp3 auf Windows 7 gegangen. Gleichzeitig habe ich von VB.Net Express 2008 auf 2010 64 Bit gewechselt. Als Datenbank habe ich MS SQL 2008 Express im Einsatz. Probleme traten bisher nicht auf, bis auf heute.
' Retrieve the enumerator instance and then the data.
Dim instance As SqlDataSourceEnumerator = SqlDataSourceEnumerator.Instance
Dim table As System.Data.DataTable = instance.GetDataSources()Bei GetDataSources steht das Programm. Eine der Fehlermeldungen sprach von einem möglichen Deadlock. Im Debugmode kommt man zwar wieder heraus. Jedoch bleibt das Programm selber auf den Desktop stehen und lässt sich auch nicht über den Taskexplorer beenden. Es hilft nur noch ein Neu-Booten.
Meine Instanz: SQL Server 10.0.1600
Das selbe passiert auch mit einem VB.Net Express 2008 - Programm. Ist hier u.U. die Firewall schuld? Muss ein Port freigegeben werden?
Ein Nachsatz:
Ich habe mal das Netz unterbrochen und die Firewall deaktiviert. Das Programm lief, meldete sogar das der Server nicht gefunden wurde. Nach aktivieren der Firewall das selbe verhalten. An der Firewall liegt es also nicht. Danach habe ich wieder den Rechner an das Netz geschaltet, das Programm hat sich wieder aufgehangen.
Ist GetDataSources u.U. nicht für SQL Server 10.0.1600. Man las auch nur etwas von Sql Server 2000, 2005.
Wenn nicht, was nimmt man dann alternativ?
Gruss Klaus.
- Bearbeitet Robert BreitenhoferModerator Dienstag, 16. November 2010 09:38 Formatierung
- Verschoben Robert BreitenhoferModerator Dienstag, 16. November 2010 09:46 SQL Server Express (aus:Visual Basic .NET Express-Edition)
Antworten
-
Hallo Klaus,
der SqlDataSourceEnumerator funktioniert mit allen SQL Server Versionen ab SQL Server 2000 aufwärts,
also auch SQL Server 2008 (und R2) - auch wenn Dokumentationen mal hinterherhinken ;-)
Voraussetzung ist, dass der SQL Server Browser Dienst läuft (bei SQL Server/MSDE 2000 direkt integriert) läuft.
Und dass die Windows Firewall für den dafür benötigten Port (UDP/1434) durchlässig geschaltet ist.Im übrigen wäre empfehlenswert der SQL Server Express RTM Instanz ein Service Pack zu verpassen:
Microsoft SQL Server 2008 SP2 Express Edition Service Pack 2Denn neben Bugfixes finden sich dort Anpassungen zur Windows 7 Kompatibilität
(Service Pack 1 war dafür immer Minimum )Gruß Elmar
- Als Antwort markiert Robert BreitenhoferModerator Montag, 22. November 2010 16:19
-
Hallo Klaus,
Läuft das Service SQL Server Browser?
Schau Dir mal die folgenden Links an. Vielleicht können sie Dir weiter helfen.
SqlDataSourceEnumerator.Instance; not returning all instances
http://msdn.microsoft.com/en-us/library/system.data.sql.sqldatasourceenumerator.getdatasources.aspx (lies mal den Hinweis von hier wo auf einmal gesagt wird: „Außerdem kann das Ausführen dieser Methode [SqlDataSourceEnumerator.GetDataSources] sehr zeitaufwändig sein. Daher sollte sie bei knapper Systemkapazität nur mit Bedacht aufgerufen werden.“)
Locate SQL Server instances on the local network
How can I detect available SQL server instances in the neighboring network?
Grüße,
Robert
- Als Antwort vorgeschlagen Elmar Boye Montag, 22. November 2010 18:22
- Als Antwort markiert Robert BreitenhoferModerator Dienstag, 23. November 2010 07:35
Alle Antworten
-
Hallo Klaus,
Läuft das Service SQL Server Browser?
Schau Dir mal die folgenden Links an. Vielleicht können sie Dir weiter helfen.
SqlDataSourceEnumerator.Instance; not returning all instances
http://msdn.microsoft.com/en-us/library/system.data.sql.sqldatasourceenumerator.getdatasources.aspx (lies mal den Hinweis von hier wo auf einmal gesagt wird: „Außerdem kann das Ausführen dieser Methode [SqlDataSourceEnumerator.GetDataSources] sehr zeitaufwändig sein. Daher sollte sie bei knapper Systemkapazität nur mit Bedacht aufgerufen werden.“)
Locate SQL Server instances on the local network
How can I detect available SQL server instances in the neighboring network?
Grüße,
Robert
- Als Antwort vorgeschlagen Elmar Boye Montag, 22. November 2010 18:22
- Als Antwort markiert Robert BreitenhoferModerator Dienstag, 23. November 2010 07:35
-
Hallo Klaus,
der SqlDataSourceEnumerator funktioniert mit allen SQL Server Versionen ab SQL Server 2000 aufwärts,
also auch SQL Server 2008 (und R2) - auch wenn Dokumentationen mal hinterherhinken ;-)
Voraussetzung ist, dass der SQL Server Browser Dienst läuft (bei SQL Server/MSDE 2000 direkt integriert) läuft.
Und dass die Windows Firewall für den dafür benötigten Port (UDP/1434) durchlässig geschaltet ist.Im übrigen wäre empfehlenswert der SQL Server Express RTM Instanz ein Service Pack zu verpassen:
Microsoft SQL Server 2008 SP2 Express Edition Service Pack 2Denn neben Bugfixes finden sich dort Anpassungen zur Windows 7 Kompatibilität
(Service Pack 1 war dafür immer Minimum )Gruß Elmar
- Als Antwort markiert Robert BreitenhoferModerator Montag, 22. November 2010 16:19