Tôi có cài đặt SQL Server 2014 Express. Nó được cấu hình cho
- Kết nối từ xa
- TCP được kích hoạt
- xác thực chế độ hỗn hợp được cho phép và
- tường lửa máy chủ bị vô hiệu hóa
Chương trình của tôi kết nối với máy chủ đó từ máy của tôi hoạt động tốt. Chuỗi kết nối của tôi là
user id=user1;password=pass;server=192.168.0.1;Trusted_Connection=no;database=myDb;MultipleActiveResultSets=True;
Nhưng nếu tôi muốn thực thi chương trình của mình từ một máy khác, tôi nhận được thông báo lỗi:
Kết nối với máy chủ SQL. Lỗi 26: trình khởi tạo kiểu đã ném một ngoại lệ. lỗi định vị máy chủ xác định
Vì nó hoạt động từ máy khách của tôi nên nó không thể là vấn đề cấu hình máy chủ.
Tôi đã mở cổng TCP 1433 và cổng UDP 1434 trên máy khách có vấn đề, nhưng nó vẫn không hoạt động.
Có ý kiến gì không?
bạn đang sử dụng loại kết nối nào? ODBC, OleDB, SQLServer bản địa ...? là tham số nguồn dữ liệu bằng cách sử dụng tên máy chủ ngắn hoặc tên đủ điều kiện? bạn có thể ping và NSLookup máy chủ máy chủ từ máy khách đó không? được đặt tên ống được kích hoạt? Bạn đã khởi động lại dịch vụ sau khi cho phép TCP và đặt tên ống?
—
Frank Thomas
Tôi đã thêm chuỗi kết nối vào câu hỏi của tôi. Tôi đoán là tôi sử dụng ứng dụng C # với trình điều khiển SQL gốc. TCP và ống có tên hiện đang được kích hoạt. Tôi khởi động lại dịch vụ và thậm chí cả máy chủ.
—
juergen d
Ngoài ra, lưu ý rằng việc mở các cổng tường lửa trên máy khách sẽ không có hiệu lực và không chắc là tường lửa máy chủ đang chặn. Bởi vì thông báo của bạn chỉ ra rằng không thể tìm thấy INSTANCE máy chủ, tôi tự hỏi về cơ sở dữ liệu = tham số của bạn. Bạn có nhiều phiên bản trên máy chủ đó không? Đây là một ví dụ được đặt tên hoặc mặc định? Điều gì xảy ra nếu bạn bỏ điều khoản đó?
—
Frank Thomas
Tường lửa máy chủ bị tắt. Tôi có một ví dụ mặc định gọi là MSSQLSERVER. Tôi cũng đã thử thêm nó vào chuỗi kết nối, nhưng với kết quả tương tự
—
juergen d
tốt, với một ví dụ mặc định, bạn không đặt tên cho nó. Điều đó nói rằng, chuỗi kết nối của bạn trông kỳ lạ, thiếu như 'Nguồn dữ liệu =', 'Danh mục ban đầu =', v.v. có lẽ kinh nghiệm của tôi với chuỗi kết nối đã không theo kịp dòng sản phẩm SQLServer mới nhất. Điều đó nói rằng, hãy thử:
—
Frank Thomas
Data Source="192.168.0.1"; Initial Catalog="MyDB"; user id="user1"; password="pass"; MultipleActiveResultSets=True;