Kết nối ASP cổ điển với SQL Server 2014 không có TLS 1.0 bằng ADODB. Kết nối


8

Với TLS 1.0 bị vô hiệu hóa dưới tên tuân thủ PCI, tôi không thể làm cho ứng dụng Classic 32 bit hoạt động.

Theo khuyến nghị của MS / Stack Exchange, tôi đã cài đặt:

  1. Máy chủ SQL 2014 SP1 CU1
  2. .NET Framework 4.6

Điều này đã nhận được các ứng dụng ASP.NET / SSMS của chúng tôi đang chạy. Nhưng ứng dụng Classic Classic của chúng tôi, sử dụng một ADODB.Connectionđối tượng không hoạt động.

Tôi đã thử một chuỗi kết nối sử dụng Provider=SQLNCLI11;, nhưng dường như điều đó cũng không giúp được gì. Nhà cung cấp Bộ nhớ chia sẻ vẫn phàn nàn về việc không có gì ở đầu kia của đường ống. Thông báo lỗi:

Lỗi máy khách bản địa Microsoft SQL Server 11.0 '80004005'

Nhà cung cấp bộ nhớ dùng chung: Không có quá trình nào ở đầu kia của đường ống.

Tôi cũng đã thử sử dụng Named Faucet với chuỗi kết nối Provider=SQLNCLI11;Server=np:\\.\pipe\MSSQL$SQLEXPRESS\sql\query;Database=northwind;Trusted_Connection=Yes;và nhận được thông báo lỗi này:

Lỗi máy khách bản địa Microsoft SQL Server 11.0 '80004005'

Nhà cung cấp ống có tên: Không có quá trình ở đầu kia của ống.

Có một bản vá cho ADODB mà tôi nên biết không? Tôi nên xem xét sử dụng ống có tên theo cách khác hoặc tương tự? (mặc dù tôi hơi bối rối về lý do tại sao bộ nhớ dùng chung không hoạt động, bất kể cài đặt TLS)


Cập nhật từ các bình luận:

Máy chủ web và Máy chủ SQL nằm trên cùng một hộp.

Đó là một ví dụ có tên là SQLE. Chuỗi kết nối hoạt động với TLS 1.0 được bật là:

"Driver={SQL Server}; Server=.\SQLExpress; Database=northwind; Trusted_Connection=Yes; Integrated_Security=True;"

Tôi cũng đã thử:

"Provider=SQLNCLI11; Server=.\SQLExpress; Database=northwind; Trusted_Connection=Yes;"

Không hoạt động khi TLS 1.0 bị vô hiệu hóa. Tôi biết Trusted_Connection / Integration_Security là không cần thiết, nhưng việc loay hoay với những thứ này dường như cũng không giúp được gì.

Tôi đã bật tính năng bật, tắt và đặt hàng cho cả TCP và các đường dẫn có tên. Tên của đường ống được sử dụng trong chuỗi kết nối ở trên là trực tiếp từ Cấu hình máy chủ. Tôi cũng đã thử vô hiệu hóa Bộ nhớ chung để đảm bảo các đường dẫn có tên đang hoạt động. Tôi chưa thử TCP (như thể Bộ nhớ chia sẻ không hoạt động vì TLS, tại sao TCP?) Bộ nhớ dùng chung và ống được đặt tên đều hoạt động với TLS 1.0 được bật. Ngay khi tôi lật khóa đăng ký để tắt TLS 1.0 (và khởi động lại), các thông báo lỗi ở trên xảy ra. Chúng tôi có thể sẽ đặt máy này phía sau một proxy.

Dịch vụ máy chủ SQL sẽ không bắt đầu sau khi tắt TLS 1.0 và SSL 3.0

Vấn đề được mô tả trong liên kết đó được CU1 giải quyết trong câu hỏi đặt ra của tôi ở trên. Phiên bản SQL Server DOES bắt đầu với TLS 1.0 bị vô hiệu hóa (nhờ cập nhật MS). Các ứng dụng dựa trên .NET chỉ hoạt động tốt với phiên bản SQL (sau khi cập nhật lên 4.6). Câu hỏi này dành riêng cho ứng dụng Classic ASP (32-bit). Sự hiểu biết của tôi là máy khách gốc cũng được vá bởi CU1, do đó tôi bối rối về lý do tại sao điều này không hoạt động.

Câu trả lời:


2

Bạn có thể đang cố gắng sử dụng trình điều khiển cũ 32 bit.

Hãy thử chạy C: \ Windows \ SysWOW64 \ odbcad32.exe để tạo DSN kết nối với cơ sở dữ liệu SQL Server của bạn bằng trình điều khiển SQL Server 32 bit. Đầu tiên kiểm tra kết nối bằng GUI.

Sau đó thử chỉ định DSN của bạn trong chuỗi kết nối của bạn như vậy:

DSN=myDsn;Uid=myUsername;Pwd=;

Phiên bản 64 bit nằm ở: C: \ Windows \ System32 \ odbcad32.exe

PS Tôi chưa thử điều này nhưng tên nhà cung cấp cho Máy chủ SQL 32 bit thực sự là "Máy chủ SQL". Sẽ thật tuyệt nếu tất cả những gì bạn phải làm là thay thế SQLNCLI11 bằng SQL Server. Đây là tệp DSN của tôi, tôi đã tạo với phiên bản 32 bit - chú ý trình điều khiển ...

[ODBC]
DRIVER=SQL Server
UID=sa
WSID=P13-0000
APP=Microsoft® Windows® Operating System
SERVER=mcdba1

0

Bạn sẽ cần sửa lỗi ADO.NET và SQLNCLI11 cho trình điều khiển của bạn để làm cho chúng hoạt động với TLS 1.2.

Kể từ ngày 29 tháng 1, Microsoft SQL Server hỗ trợ TLS 1.2 cho SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 và SQL Server 2014 và các trình điều khiển máy khách chính như Server Native Client, Microsoft ODBC Driver cho SQL Server, Microsoft JDBC Driver cho SQL Server và ADO.NET (SqlClient).

Bạn có thể đọc thêm về việc phát hành ở đây . Danh sách các bản dựng hỗ trợ TLS 1.2 cùng với các vị trí tải xuống thành phần máy khách và máy chủ có sẵn trong KB3135244 .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.