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:
- Máy chủ SQL 2014 SP1 CU1
- .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.