2009-07-10 36 views
15

Tôi có một ứng dụng web hiện đang chạy trên hệ điều hành Windows XP với cơ sở dữ liệu SQL Server 2005 và IIS 6.0.

Bây giờ, chúng tôi đang cố gắng nâng cấp nó lên IIS 7.0 trên Windows Server 2008 và cơ sở dữ liệu SQL Server 2008.

Khi tôi chạy ứng dụng thì nó đang ném "Đã xảy ra lỗi khi vận chuyển khi gửi yêu cầu tới máy chủ. (Nhà cung cấp: Nhà cung cấp TCP, lỗi: 0 - Kết nối hiện có bị đóng bởi máy chủ từ xa.) "ngẫu nhiên tại các cuộc gọi cơ sở dữ liệu khác nhau.

Tôi đã xác minh bằng cách sử dụng "sp_who" chỉ có một kết nối mà tôi đang sử dụng được mở.

Bất cứ ai có thể cho tôi biết, nguyên nhân của vấn đề này có thể là gì?Đã xảy ra lỗi giao thông ... (Kết nối hiện tại được đóng bởi máy chủ) Sql Server 2008

+0

Vẫn gặp sự cố này? –

+0

bất kỳ giải pháp cho điều này ??? – Narendra

Trả lời

1

Thông thường, đó là cơ sở dữ liệu được ẩn/đóng hoặc SQL Instance được khởi động lại/ẩn

4

Có lẽ cơ sở dữ liệu được thiết lập để tự động đóng? Đây là cơ sở dữ liệu mặc định được tạo trên phiên bản MSDE/Express cũ hơn.

ALTER DATABASE YourDatabaseName SET AUTO_CLOSE OFF; 

thêm:

Các SQL Server 2005 Express Edition Overview trạng thái:

Features like Auto-Close and the ability to copy databases as files are enabled by default in SQL Server Express ...

Tôi không thể nhớ được gói dịch vụ thay đổi mặc định, nhưng giao diện người dùng cơ sở dữ liệu mới trong phiên bản SP3 của Management Studio Express mặc định cài đặt Auto Close thành false.

+0

MSDE, vâng. Phiên bản Express nào này là phiên bản mặc định? –

+0

Chỉnh sửa: Đã thêm thông tin. – devstuff

+0

@devstuff - hoạt động, nhưng cần phải được thực hiện mỗi khi máy chủ SQL được bắt đầu lại. Bất kỳ cách nào để làm cho nó vĩnh viễn? –

2

Đây là lỗi xảy ra khi kết nối với cơ sở dữ liệu do lỗi liên quan đến mạng lớp thấp hơn mà bạn không thể xử lý từ Sql Server.

Điều tuyệt vời là API được sử dụng để conenct xử lý lỗi này nhưng AFAIK thì không. Cách duy nhất để giải quyết vấn đề này là thử kết nối lại với cơ sở dữ liệu khi lỗi này xảy ra.

Bạn nên thử kết nối lại ít nhất một vài lần để đảm bảo rằng lỗi không liên tục và nếu trường hợp đó xảy ra thì hãy ném ngoại lệ. Kinh nghiệm của tôi nói với tôi rằng cố gắng kết nối lại, 99,9% số lần bạn sẽ thành công.

14

Điều này blog post bởi Michael Aspengren giải thích thông báo lỗi "Đã xảy ra lỗi cấp độ vận chuyển khi gửi yêu cầu đến máy chủ".

0

Lỗi mức vận chuyển thường được liên kết với kết nối đến máy chủ sql bị hỏng ... thường là mạng.

Hết giờ hết hạn thường được ném khi truy vấn sql mất quá nhiều thời gian để chạy. Đây có phải là kịch bản trong trường hợp của bạn không? Giống như proc được lưu giữ mất quá nhiều thời gian để thực thi hoặc có những công việc hàng loạt được thực hiện?

0

Trong trường hợp của tôi. Chúng tôi có DELL R720, NIC là trên bo mạch và PCI Broadcom NetXtreme Gigabit Ethernet thẻ. Chúng tôi gặp phải hai vấn đề.

  1. Tốc độ mạng rất chậm đối với máy ảo HyperV. Giải pháp là để vô hiệu hóa "hàng đợi máy ảo" của máy chủ HyperV cửa sổ tài sản Broadcom nic. Nó nằm trong tab Advanced.

  2. Máy khách SQL gặp vấn đề về mức độ vận chuyển này. Nó chỉ xảy ra một lần trong mỗi 10-15 phút. Đồng thời dịch vụ RDP cũng khởi động khách hàng theo thời gian. Giải pháp là vô hiệu hóa "Large Send Offload V2" của cửa sổ Hypercom host Broadcom nic. Nó nằm trong tab Advanced.

0

Sử dụng clearpool (urSQLconnection), cùng với vứt bỏ. Điều này sẽ xóa kết nối bẩn. và bạn có thể mở kết nối mới.

Các vấn đề liên quan