2009-02-18 24 views
6

Chúng tôi có một ứng dụng ASP .NET duy nhất chạy trên một máy chủ web (không có trang trại). Hiện tại, chúng tôi đang sử dụng bộ nhớ phiên 'InProc' mặc định. Có đáng xem xét sử dụng dịch vụ nhà nước ASP .NET không? Nếu chúng tôi đã đi tuyến đường đó, chúng tôi có thể sẽ chỉ chạy dịch vụ trên cùng một máy như ứng dụng, vì vậy thực hiện cuộc gọi qua mạng để nhận và đặt thông tin phiên sẽ không phải là vấn đề. Lý do chúng tôi xem xét điều này là giúp tránh dữ liệu phiên bị mất khi nhóm ứng dụng tái chế.Thực hành tốt nhất cho 'InProc' vs 'StateServer' cho trạng thái phiên ASP .NET

Ngoài ra, việc sử dụng SQL Server hiện không hoạt động, vì vậy chúng tôi chỉ nói về máy chủ trạng thái trong quá trình so với máy chủ trạng thái.

Ưu và nhược điểm của từng chế độ trong trường hợp này là gì?

Trả lời

10

Vâng server nhà nước là chậm hơn một chút so với năm proc. Lợi ích bạn sẽ nhận được từ nó là nếu bạn cần phải tái chế các hồ bơi ứng dụng, sau đó trạng thái của ứng dụng (phiên người dùng vv) sẽ không bị ảnh hưởng. Nếu bạn dự định sử dụng máy chủ trạng thái trong tương lai, tôi sẽ bắt đầu sử dụng nó ngay bây giờ. Trong quá trình, các đối tượng được lưu trữ trong bộ nhớ như vậy, nhưng với máy chủ trạng thái chúng được tuần tự hóa. Điều này có thể là một vấn đề lớn nếu bạn có kế hoạch thực hiện chuyển đổi sau này vì bạn sẽ phải kiểm tra xem mọi thứ bạn lưu trữ trong trạng thái có thể tuần tự hóa hay không. Nếu bạn bắt đầu với sự kiềm chế đó, bạn biết trước (trong khi bạn đang tích cực làm việc với mô-đun đó) cái gì sẽ hoạt động và cái gì không.

+2

Một trang trại có tiềm năng trong tương lai của chúng tôi, vì vậy tôi đồng ý rằng chúng tôi cũng có thể thực hiện việc di chuyển ngay bây giờ để xác định mọi vấn đề không thể tuần tự hóa mà chúng tôi có thể có. –

1

Tôi thích sử dụng StateService đơn giản vì đó là một điều ít thay đổi nếu bạn cần phân phối ứng dụng của mình trên nhiều dịch vụ. Và nó cho phép bạn tái chế IIS mà không mất tất cả các phiên. Mặc dù điều này không phải là hữu ích với chỉ một máy chủ nó chỉ có vẻ như soemthing tốt đẹp để có.

Lý do của tôi có nhiều cảm giác chung hơn bất kỳ điều gì khác. Nhưng tôi chưa bao giờ gặp vấn đề với nó.

3

Tôi nghĩ rằng đây là trường hợp cổ điển của YAGNI.

InProc dễ dàng và hiệu quả. Chặn một nhu cầu cụ thể cho một dịch vụ nhà nước riêng biệt, tại sao bạn sẽ xem xét thực hiện một thay đổi như vậy? Thật vậy, cho rằng lợi thế thực sự chỉ đến nếu bạn phân phối trang web của mình trên nhiều máy chủ - và bạn không phải là phân phối trang web của mình trên nhiều máy chủ, điều này có thể trở thành nỗ lực lãng phí. Ngay cả khi bạn khá chắc chắn rằng bạn sẽ cuối cùng di chuyển sang nhiều máy chủ, tôi sẽ không thực hiện chuyển đổi trừ khi và cho đến khi đến lúc khởi động máy chủ thứ hai đó. Một lần nữa, đọc bài báo tại liên kết YAGNI để hiểu tại sao.

Thay vào đó, sử dụng thời gian bạn sẽ tiết kiệm để cải thiện trang web của bạn ...

Thông tin thêm về giải pháp thay thế của bạn có thể được tìm thấy here ...

+0

Có một lý do khiến chúng tôi cân nhắc và tôi nên có inclu suy luận lý do đó trong câu hỏi (tôi sẽ cập nhật câu hỏi ngay bây giờ) Tuy nhiên, vì lý do đó, tôi đồng ý rằng đó có thể là một YAGNI. –

+0

Ok, tôi hiểu rồi. Tôi tự hỏi, mặc dù ... tại sao các hồ bơi ứng dụng tái chế trên một máy chủ sản xuất? Điều này xảy ra rất, rất hiếm khi đối với chúng tôi! –

2

Tôi khá được bán trên luôn sử dụng StateService, bất kể điều gì. Chúng tôi sử dụng để chỉ sử dụng InProc, nhưng nó quay ra có (rõ ràng) tất cả các loại cách kỳ lạ appPool có thể được tái chế mà bạn không biết về nó.

Chúng tôi đã từng để khách hàng mất các phiên của họ trong khi trong hệ thống web mỗi tuần một lần hoặc lâu hơn, do một số hành động tái chế không thể giải thích được. Khi chúng tôi chuyển sang StateService, chúng tôi đã không gặp vấn đề đó một lần.

0

Đúng tôi nếu tôi sai nhưng từ những gì tôi đọc trên mạng, có một ưu/nhược điểm:

  • InProc lực lượng để sử dụng một workerprocess duy nhất, do đó mất sessionState khi tái chế
  • stateserver cho phép sử dụng khu vườn trên web (ví dụ: định cấu hình hồ bơi ứng dụng để chạy trên ví dụ 4 công nhân)
Các vấn đề liên quan