Изменить TCP-порт SQL SERVER EXPRESS 2008 с помощью Microsoft.SqlServer.Management.Smo - PullRequest
2 голосов
/ 20 апреля 2010

Мне нужно изменить порт по умолчанию (1433) экземпляра SQL EXPRESS 2008 в c #.

Ответы [ 2 ]

1 голос
/ 21 апреля 2010

Для этого необходимо использовать поставщика WMI, поставляемого с SMO. Добавить ссылки на

Microsoft.SqlServer.ConnectionInfo
Microsoft.SqlServer.Management.Sdk.Sfc
Microsoft.SqlServer.Smo
Microsoft.SqlServer.SqlWmiManagement
Microsoft.SqlServer.WmiEnum

и using для

using Microsoft.SqlServer.Management.Smo.Wmi;

Тогда код в основном такой:

ManagedComputer c = new ManagedComputer();

//Get the SQL service and stop it if it's running
Service svc = c.Services["MSSQL$SQLEXPRESS"];
if (svc.ServiceState == ServiceState.Running)
{
    svc.Stop();
}

//Connect to the SQLEXPRESS instance and change the port
ServerInstance s = c.ServerInstances["MSSQL$SQLEXPRESS"];
ServerProtocol prot = s.ServerProtocols["Tcp"];
prot.IPAddresses[0].IPAddressProperties["TcpPort"].Value = "1433";

//Commit the changes
prot.Alter();

//Restart the service
svc.Start();

Это предполагает, что у вас есть один IP-адрес, а не несколько адресов. Если у вас есть несколько, вам может потребоваться изменить индекс в prot.IPAddresses [].

1 голос
/ 20 апреля 2010

обычно вы переназначаете порт через их интерфейс

http://msdn.microsoft.com/en-us/library/ms177440.aspx

однако, я думаю, что он просто сохраняет его в реестре, поэтому проще всего заменить его один раз в пользовательском интерфейсе на какое-то конкретное число (например, 12345), а затем посмотреть в разделе HKLM \ SOFTWARE \ Microsoft \ Microsoft SQL Сервер для этого номера. При этом я сам показываю ключ HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SQL Server \ MSSQL10.MSSQLSERVER \ MSSQLServer \ SuperSocketNetLib \ Tcp \ IP1 со значением REG_SZ (кажется странным) с именем TcpPort.

Если вы имеете в виду (или также должны знать), как подключиться к экземпляру по умолчанию, когда он находится не на порту по умолчанию, просто измените источник с хоста на хост, порт (например, измените FOO на FOO, 12345)

http://msdn.microsoft.com/en-us/library/ms191260.aspx

...