2010-11-11 39 views
45

chúng tôi có một ứng dụng asp.net MVC được triển khai tới máy chủ và khi có quá nhiều yêu cầu tới máy chủ, máy khách sẽ chỉ nhận được lỗi "503 dịch vụ không khả dụng".
Nhưng nếu tôi triển khai ứng dụng đến một máy chủ khác (cấu hình phần cứng thấp hơn), mọi thứ hoạt động tốt, thậm chí nhiều yêu cầu hơn nó có thể xử lý tốt.
Câu hỏi của tôi là cấu hình có thể có thể khiến máy chủ trước chỉ ném ra lỗi 503? (có nghĩa là các yêu cầu không đạt được ứng dụng của chúng tôi).Khả năng nào có thể gây ra lỗi "Dịch vụ không khả dụng 503"?

+2

Thực tế có [nhiều lý do có thể] (http://www.microsoft.com/technet/prodtechnol/windowsserver2003/library/iis/55f71614-ef1b-4015-b9c8-a42c1e700c25.mspx?mfr=true). –

+10

Đóng? Nó không hữu ích để biết một số hoặc tất cả các câu trả lời là gì? Stack Overflow là lạ. Không được cung cấp tất cả các loại thông tin, CHỈ MỘT LOẠI CỤ THỂ! ;) –

+1

Các hoạt động kỳ lạ như vậy của Stack overflow là đằng sau hiện trường của chúng tôi. Dù sao, nó là trang web yêu thích của tôi cho lập trình thiên tài trong trang web này. –

Trả lời

65

Các trang web của bạn được phục vụ bởi một nhóm ứng dụng. Nếu bạn vô hiệu hóa/ngừng hồ bơi ứng dụng và bất kỳ ai cố gắng duyệt qua ứng dụng, bạn sẽ nhận được một Dịch vụ không khả dụng. Nó có thể xảy ra do nhiều lý do ...

  1. Ứng dụng của bạn có thể đã bị rơi [kiểm tra xem sự kiện và xem nếu bạn có thể tìm các bản ghi sự kiện trong Application/Hệ thống đăng nhập của bạn]

  2. Ứng dụng của bạn có thể bị rơi rất thường xuyên. Nếu một hồ bơi ứng dụng bị treo 5 lần trong 5 phút [kiểm tra cài đặt nhóm ứng dụng của bạn để nhanh chóng thất bại], hồ bơi ứng dụng của bạn bị vô hiệu hoá bởi IIS và bạn sẽ nhận được thông báo này.

Trong cả hai trường hợp, vấn đề là quy trình công nhân của bạn không thành công và bạn nên khắc phục sự cố từ góc độ tai nạn.

What is a Crash (technically)... in ASP.NET and what to do if it happens?

3

Chủ yếu điều đó có nghĩa là có quá nhiều yêu cầu đồng thời và hơn nữa chúng vượt quá 1000 yêu cầu mặc định được xếp hàng đợi. Đó là có 1000 hoặc nhiều yêu cầu xếp hàng đợi đến trang web của bạn.

Điều này có thể xảy ra (giả sử không có lỗi trong ứng dụng của bạn) nếu có các tác vụ chạy dài và kết quả là hàng đợi Yêu cầu được sao lưu.

Tùy thuộc vào cách ứng dụng nhóm đã được thiết lập, bạn có thể thấy loại điều này. Thông thường, Process Model của nhóm ứng dụng có một mục có tên là Maximum Worker Processes. Theo mặc định, đây là 1. Nếu bạn đặt nó thành nhiều hơn 1 (thường là tối đa số lõi trên phần cứng), bạn có thể không thấy điều này xảy ra.

Chỉ cần lưu ý rằng trừ khi trang web vô cùng bận rộn, bạn sẽ không thấy điều này. Nếu bạn làm như vậy, nó thực sự chỉ đến các tác vụ chạy dài

+2

Xin lỗi Shiv. Điều này LAF không đúng. http://support.microsoft.com/kb/943891 –

+0

điều gì không chính xác? –

+5

Điều bạn đang nói sẽ dẫn đến lỗi Máy chủ quá bận. Câu hỏi là Dịch vụ không khả dụng. Hai vấn đề này hoàn toàn khác nhau. Kiểm tra câu trả lời của tôi. –

2

Chúng tôi vừa mới gặp phải lỗi này, nguyên nhân gốc rễ bật ra được một cert SSL hết hạn trên máy chủ IIS. Load Balancer (đi trước tầng web của chúng tôi) tìm thấy SSL đã hết hạn, và thay vì xử lý lưu lượng HTTP trên một trong các máy chủ IIS, bắt đầu hiển thị lỗi này. Vì vậy, về cơ bản IIS không thể yêu cầu máy chủ, vì một lý do hoàn toàn khác :)

5

Nếu máy chủ không có đủ bộ nhớ cũng sẽ gây ra vấn đề này. Đây là kinh nghiệm cá nhân của tôi với Godaddy VPS.

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