Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

какви са настройките на системния регистър за активиране на TCP на SQL Server 2005 и 2008?

Освен ако нямате основателна причина да модифицирате регистъра директно, предлагам да обмислите използването на WMI . WMI ще ви предостави по-агностична реализация на версията. WMI може да бъде достъпен чрез System.Management пространство от имена. Може да имате код, който изглежда нещо подобно.

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);
        }
    }
}

Този код предполага препратка към проект към System.Management.dll и следния израз за използване:

using System.Management;

Sql протоколи блогът има статия който навлиза в някои подробности за това какво прави горният код.

Забележка:Ако защитна стена блокира порта(овете), пак няма да имате достъп до сървъра чрез TCP.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ескейпиране на специални символи в оператор SQL LIKE с помощта на sql параметри

  2. Изисква се реализация на cte за йерархични данни

  3. Има ли начин за показване на резултати от PRINT с JDBC драйвер на SQL сървър?

  4. Как да коригирате „Схемата на дяловете „...“ няма следваща използвана файлова група“ в SQL Server

  5. Как да настроя SQL Server / IIS 7.0, за да позволя на уебсайта на ASP.NET MVC достъп до базата данни?