Tôi muốn bật lập trình các kết nối TCP trên SQL Server. Tôi tin rằng chúng ta có thể đạt được điều này bằng cách sửa đổi các mục đăng ký và khởi động lại dịch vụ SQL Server. Tôi nên chỉnh sửa đăng ký nào?cài đặt đăng ký để bật TCP trên SQL Server 2005 và 2008 là gì?
5
A
Trả lời
7
Trừ khi bạn có lý do chính đáng để sửa đổi sổ đăng ký trực tiếp, tôi khuyên bạn nên xem xét sử dụng WMI
. WMI sẽ cung cấp cho bạn một phiên bản thực thi thuyết phục hơn. WMI có thể được truy cập thông qua không gian tên System.Management. Bạn có thể có mã trông giống như thế này.
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);
}
}
}
Mã này giả định một tài liệu tham khảo dự án để System.Management.dll
và sử dụng tuyên bố sau:
using System.Management;
Blog Sql Protocols có article mà đi vào một số chi tiết như những gì các mã trên đang làm.
Lưu ý: Nếu tường lửa chặn (các) cổng, bạn sẽ vẫn không thể truy cập máy chủ qua TCP.
3
Hãy xem HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQLServer\SuperSocketNetLib\Tcp
hive. Có các phím như Enabled
, ListenOnAllIPs
và danh sách các địa chỉ IP để nghe.
Các vấn đề liên quan
- 1. Cài đặt SQL Server Express 2008 Cài đặt SQL Server Express 2008
- 2. Chính xác SQL Server 2005 là gì?
- 3. SQL Server 2005 Sao chép và lập chỉ mục khác nhau trên người đăng ký
- 4. Visual Studio 2005 không hỗ trợ Sql Server 2008
- 5. SQL Server 2005 và 2008 trên cùng một máy phát triển?
- 6. Sử dụng SQL Server 2008 và SQL Server 2005 và ngày giờ
- 7. Bật tích hợp CLR trên SQL Server 2008-r2
- 8. SQL Server 2005 Replication
- 9. Hạ cấp máy chủ SQL 2008 sang SQL Server 2005
- 10. Cài đặt SQL Server 2008 Biến ngày giờ
- 11. Cài đặt SQL Server - Thư mục Phương tiện Cài đặt là gì?
- 12. SQL Server 2008 GET DateTimeOffset theo cài đặt máy
- 13. SQL Server 2005 - Đặt cột là chỉ đọc
- 14. Isoweek trong SQL Server 2005
- 15. MySQL vs SQL Server 2005/2008 hiệu suất
- 16. Lỗi đăng nhập vào SQL Server 2008
- 17. Sự khác nhau giữa thông tin đăng nhập và thông tin đăng nhập trong SQL Server 2008 là gì?
- 18. SQL Server 2008 và HashBytes
- 19. Việc sử dụng SYNONYM trong SQL Server 2008 là gì?
- 20. Tài khoản nào để sử dụng khi cài đặt SQL Server 2008 Developer
- 21. Bật Nhà môi giới Dịch vụ trong SQL Server 2008
- 22. Có bất kỳ lợi ích hiệu suất nào khi sử dụng SQL Server 2008 trên SQL Server 2005 không?
- 23. Thứ tự cài đặt đúng cho Visual Studio 2010 với SQL Server 2008 và Office 2007?
- 24. Làm thế nào để cài đặt Enterprise Manager trong SQL Server 2008 Express?
- 25. Làm cách nào để bật Lập chỉ mục toàn văn trong SQL Server 2005 Express?
- 26. Nâng cấp SQL Server 2008 đến 2008 R2
- 27. SQL Server 2005 Dấu thời gian ngày Truy vấn
- 28. Thay đổi cài đặt SQL Server theo lập trình
- 29. vs 2008 express: đăng ký
- 30. Cài đặt im lặng của SQL Express 2005
Chúng tôi đã không sử dụng mã của bạn mặc dù đã sử dụng WMI – Rohit
@Rohit: Vui mừng khi biết điều đó đã giúp ích. – VoidDweller