Tôi gặp vấn đề tương tự với SQL Server 2014 được cài đặt cục bộ. Kết nối bằng cách sử dụng FQDN\InstanceName
sẽ không thành công, trong khi kết nối chỉ sử dụng hostname\InstanceName
công việc của tôi . Ví dụ: kết nối bằng cách sử dụng mycomputername\sql2014
, nhưng sử dụng mycomputername.mydomain.org\sql2014
thì không. DNS được giải quyết chính xác, TCP / IP đã được bật trong Trình quản lý cấu hình SQL, các quy tắc Tường lửa của Windows được thêm vào (và sau đó tắt tường lửa để kiểm tra để đảm bảo nó không chặn bất cứ thứ gì), nhưng không có lỗi nào khắc phục được sự cố.
Cuối cùng, tôi đã phải khởi động dịch vụ " Trình duyệt máy chủ SQL " trên Máy chủ SQL và điều đó đã khắc phục sự cố kết nối.
Tôi chưa bao giờ nhận ra rằng dịch vụ Trình duyệt SQL Server thực sự hỗ trợ Máy chủ SQL thực hiện các kết nối; Tôi có ấn tượng rằng nó chỉ đơn giản là giúp tạo ra các danh sách thả xuống khi bạn nhấp vào "duyệt tìm thêm" máy chủ để kết nối, nhưng nó thực sự giúp căn chỉnh các yêu cầu của máy khách với cổng # chính xác để sử dụng, nếu cổng # không được gán rõ ràng (tương tự để làm thế nào các ràng buộc trang web giúp giảm bớt vấn đề tương tự trên một máy chủ web IIS lưu trữ nhiều trang web).
Mục kết nối này là thứ đã cho tôi manh mối về dịch vụ Trình duyệt SQL Server: https://connect.microsoft.com/QueryServer/feedback/details/589901/unable-to-connect-on-localhost-USE-fqdn-machine- Tên
- khi bạn sử dụng wstst05 \ sqlexpress làm tên máy chủ, mã máy khách sẽ tách tên máy khỏi tên đối tượng và wstst05 được so sánh với tên netbios. Tôi thấy không có vấn đề gì để chúng khớp và kết nối được coi là cục bộ. Từ đó, chúng tôi truy xuất thông tin cần thiết MÀ KHÔNG liên hệ với Trình duyệt SQL và kết nối với phiên bản SQL qua Bộ nhớ dùng chung mà không gặp vấn đề gì.
- khi bạn sử dụng wstst05.capatest.local \ sqlexpress, mã máy khách không thể so sánh tên (wstst05.capatest.local) với tên netbios (wstst05) và coi kết nối là "từ xa". Đây là do thiết kế và chúng tôi chắc chắn sẽ xem xét cải thiện điều này trong tương lai. Dù sao, do xem xét từ xa kết nối và thực tế đó là một thể hiện được đặt tên, máy khách quyết định rằng nó cần sử dụng SQLBrowser để phân giải tên. Nó cố gắng liên hệ với Trình duyệt SQL trên wstst05.capatest.local (cổng UDP 1434) và dường như phần đó không thành công. Do đó lỗi bạn nhận được.
Lý do cho dịch vụ "Trình duyệt máy chủ SQL" từ TechNet (được tôi nhấn mạnh thêm): https://technet.microsoft.com/en-us/l Library / ms181087 (v = sql.120) .aspx
Từ phần "Sử dụng trình duyệt SQL Server":
Nếu dịch vụ Trình duyệt SQL Server không chạy, bạn vẫn có thể kết nối với SQL Server nếu bạn cung cấp đúng số cổng hoặc đường ống có tên. Chẳng hạn, bạn có thể kết nối với phiên bản mặc định của SQL Server bằng TCP / IP nếu nó đang chạy trên cổng 1433. Tuy nhiên, nếu dịch vụ Trình duyệt SQL Server không chạy, các kết nối sau không hoạt động :
- Bất kỳ thành phần nào cố gắng kết nối với một thể hiện được đặt tên mà không chỉ định đầy đủ tất cả các tham số (như cổng TCP / IP hoặc đường ống có tên) .
- Bất kỳ thành phần nào tạo hoặc chuyển thông tin cá thể của máy chủ mà sau này các thành phần khác có thể sử dụng để kết nối lại.
- Kết nối với một thể hiện được đặt tên mà không cung cấp số cổng hoặc đường ống.
- Chuyển sang phiên bản được đặt tên hoặc phiên bản mặc định nếu không sử dụng cổng TCP / IP 1433.
- Dịch vụ chuyển hướng OLAP.
- Việc liệt kê các máy chủ trong SQL Server Management Studio, Enterprise Manager hoặc Query Analyzer.
Nếu bạn đang sử dụng SQL Server trong kịch bản máy chủ-máy khách (ví dụ: khi ứng dụng của bạn truy cập SQL Server qua mạng), nếu bạn dừng hoặc tắt dịch vụ Trình duyệt SQL Server, bạn phải gán một số cổng cụ thể cho từng phiên bản và viết mã ứng dụng khách của bạn để luôn sử dụng số cổng đó. Cách tiếp cận này có các vấn đề sau :
- Bạn phải cập nhật và duy trì mã ứng dụng khách để đảm bảo nó được kết nối với cổng thích hợp.
- Cổng bạn chọn cho mỗi phiên bản có thể được sử dụng bởi một dịch vụ hoặc ứng dụng khác trên máy chủ, khiến cho phiên bản SQL Server không khả dụng.
Và thêm thông tin từ cùng một bài viết từ phần "Cách trình duyệt SQL Server hoạt động":
Bởi vì chỉ một phiên bản của SQL Server có thể sử dụng một cổng hoặc đường ống, các số cổng và tên đường ống khác nhau được gán cho các trường hợp được đặt tên, bao gồm SQL Server Express. Theo mặc định, khi được bật, cả hai phiên bản được đặt tên và SQL Server Express được cấu hình để sử dụng các cổng động, nghĩa là, một cổng khả dụng được gán khi SQL Server khởi động. Nếu bạn muốn, một cổng cụ thể có thể được gán cho một phiên bản của SQL Server. Khi kết nối, khách hàng có thể chỉ định một cổng cụ thể; nhưng nếu cổng được gán động, số cổng có thể thay đổi bất cứ lúc nào SQL Server được khởi động lại, do đó, số cổng chính xác không xác định đối với máy khách. ... Khi máy khách SQL Server yêu cầu tài nguyên Máy chủ SQL, thư viện mạng máy khách sẽ gửi tin nhắn UDP đến máy chủ bằng cổng 1434. Trình duyệt SQL Server phản hồi với cổng TCP / IP hoặc đường ống có tên của phiên bản được yêu cầu.