Ich möchte TCP-Verbindungen auf SQL Server programmatisch aktivieren. Ich glaube, wir können dies erreichen, indem wir Registrierungseinträge ändern und den SQL Server-Dienst neu starten. Welche Registry soll ich bearbeiten?Was sind Registrierungseinstellungen zum Aktivieren von TCP in SQL Server 2005 und 2008?
Antwort
Sofern Sie keinen guten Grund haben, die Registrierung direkt zu ändern, schlage ich vor, dass Sie die Verwendung von WMI
in Erwägung ziehen. WMI wird Ihnen eine mehr versionsunabhängige Implementierung bieten. Auf WMI kann über den Namespace System.Management zugegriffen werden. Sie könnten Code haben, der ungefähr so aussieht.
public void EnableSqlServerTcp(string serverName, string instanceName)
{
ManagementScope scope =
new ManagementScope(@"\\" + serverName +
@"\root\Microsoft\SqlServer\ComputerManagement");
ManagementClass sqlService =
new ManagementClass(scope,
new ManagementPath("SqlService"), null);
ManagementClass serverProtocol =
new ManagementClass(scope,
new ManagementPath("ServerNetworkProtocol"), null);
sqlService.Get();
serverProtocol.Get();
foreach (ManagementObject prot in serverProtocol.GetInstances())
{
prot.Get();
if ((string)prot.GetPropertyValue("ProtocolName") == "Tcp" &&
(string)prot.GetPropertyValue("InstanceName") == instanceName)
{
prot.InvokeMethod("SetEnable", null);
}
}
uint sqlServerService = 1;
uint sqlServiceStopped = 1;
foreach (ManagementObject instance in sqlService.GetInstances())
{
if ((uint)instance.GetPropertyValue("SqlServiceType") == sqlServerService &&
(string)instance.GetPropertyValue("ServiceName") == instanceName)
{
instance.Get();
if ((uint)instance.GetPropertyValue("State") != sqlServiceStopped)
{
instance.InvokeMethod("StopService", null);
}
instance.InvokeMethod("StartService", null);
}
}
}
Dieser Code setzt voraus, einen Projektverweis auf System.Management.dll
und die folgende using-Anweisung:
using System.Management;
Der Sql Protocols Blog ein article hat, die als zu dem, was der obigen Code in Detail geht tut.
Hinweis: Wenn eine Firewall die Ports blockiert, können Sie weiterhin nicht über TCP auf den Server zugreifen.
Werfen Sie einen Blick auf HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQLServer\SuperSocketNetLib\Tcp
Bienenstock. Es gibt Tasten wie Enabled
, ListenOnAllIPs
und eine Liste von IP-Adressen zum Abhören.
- 1. Was sind die Hauptunterschiede zwischen Sql Server 2005 und Sql Server 2008?
- 2. SQL Server 2008 zu SQL Server 2005
- 3. Visual Studio 2008 und SQL Server 2005
- 4. SQL Server 2005 Express und SQL Server 2008 Entwickler Edition
- 5. Volltextsuche in SQL Server 2005/2008
- 6. Datenbank von SQL-Server 2005 nach SQL-Server 2008 übertragen
- 7. SQL Server 2008 vs 2005 Linq Integration
- 8. SQL Server UDT Größen 2005 bis 2008
- 9. MySQL vs SQL Server 2005/2008 Leistung
- 10. Was sind die neuen T-SQL-Funktionen SQL Server 2005?
- 11. Sql Server Integration Services 2008-2005 Kompatibilität
- 12. Reporting Services 2008 auf Sql Server 2005
- 13. Übertragung von SQL-Jobs von SQL 2005 zu SQL 2008
- 14. Was ist bei der Migration von SSIS-Paketen von SQL Server 2005 auf 2008 zu beachten?
- 15. Upgrade SSIS-Pakete von SQL Server 2005 bis 2008
- 16. Was sind die zwingenden Gründe, sich für SQL Server 2008 gegenüber 2005 zu entscheiden?
- 17. Wie Aktivieren der Volltextindizierung in SQL Server 2005 Express?
- 18. Aktivieren von Service Broker in SQL Server 2008
- 19. Sperrzeile in SQL 2005-2008
- 20. Was sind die Mindestanforderungen für Sql Server 2005-Dienste?
- 21. SQL Server 2005 und Oder
- 22. SQL Server 2008 Funktionen/Vorteile?
- 23. SMO-Code-Unterstützung für beide SQL 2005 und SQL 2008
- 24. Verfolgen SQL Server 2005-Metaänderungen?
- 25. Was fehlt in SQL Server Express 2008?
- 26. bekannte und "unbekannte" Inkompatibilitäten zwischen SQL 2005 und 2008?
- 27. Mit SQL Server 2008 und SQL Server 2005 und Datum Uhrzeit
- 28. SQL Server 2005 und das Windows-Ereignisprotokoll
- 29. Welche Optionen stehen für die Quellcodeverwaltung in SQL Server 2005/2008 zur Verfügung?
- 30. Wie Abfrageausführung Statistik in 2005/2008 SQL Server abbauen
Wir haben Ihren Code nicht verwendet, obwohl verwendet WMI – Rohit
@Rohit: Froh zu hören, es half aber. – VoidDweller