2009-04-07 44 views
5

Xin chào, tất cả.Phiên chống đạn cho trang web IIS

Chúng tôi hiện đang thực hiện chuyển từ một máy chủ web sang hai và để cung cấp khả năng chuyển đổi liền mạch cho người dùng của chúng tôi, chúng tôi cần thực hiện điều gì đó về phiên.

Hiện tại, chúng tôi đang điều tra ba phương pháp khác nhau.

  1. Make sử dụng một máy chủ bang
  2. Make sử dụng SQL server
  3. Chuck tất cả mọi thứ vào các trường ẩn

I, cá nhân, muốn nhìn thấy số tùy chọn một đi vào vị trí như chúng ta không có một cơ sở dữ liệu chuyên dụng cho tùy chọn số hai và tùy chọn số ba có vẻ như một hack lộn xộn.

Vấn đề tôi hiện đang gặp phải là người quản lý của tôi không hài lòng với điểm lỗi duy nhất được cung cấp bởi máy chủ trạng thái (máy chủ SQL của chúng tôi được nhân rộng, vì vậy không có sự cố).

Có điều gì có thể được thực hiện về việc sao chép máy chủ trạng thái hay một số máy chủ như vậy không?

Trả lời

2

Sau khi điều tra thêm, chúng tôi đã quyết định đi với tùy chọn StateServer. Chúng tôi vẫn đang tìm cách để khắc phục điểm duy nhất của sự thất bại trên StateServer và chúng tôi đã mở ra hai con đường điều tra nữa.

Tùy chọn đầu tiên của chúng tôi là sử dụng chương trình của bên thứ ba để xử lý các phiên. Người mà chúng tôi đang xem xét ngay bây giờ được gọi là nCache: Tôi nghĩ có một cái gọi là ScaleOut khác mà chúng tôi cũng có thể xem xét.

Lựa chọn thứ hai là sử dụng phiên paritioning nhà nước và hiện tại chúng tôi đang xem xét tùy chọn này cũng như: http://msdn.microsoft.com/en-gb/magazine/cc163730.aspx

1

Theo tôi, không có cách nào để sao lưu hoặc sao chép dịch vụ StateServer của bạn. Một vấn đề khác khi sử dụng StateServer trong một trang trại là nếu cụm của bạn cho phép cùng một trình duyệt truy cập các máy khác nhau trên các yêu cầu khác nhau, chúng có thể có dữ liệu phiên khác nhau theo từng yêu cầu! (sửa: Martin đã chỉ ra dưới đây là bạn có thể sửa lỗi này bằng cách chia sẻ một cá thể StateServer duy nhất trong nhiều máy chủ web). Đối với mục đích của bạn lựa chọn 2 hoặc 3 sẽ được nhiều lỗi khoan dung, và tôi sẽ ném trong một ý tưởng khác: cho các mẩu nhỏ dữ liệu thử sử dụng cookie để lưu trữ phiên.

+0

Có một máy chủ trạng thái đơn nghĩa là tất cả các máy chủ trong các trang trại có thể đạt được nó vì vậy tùy chọn 1 sẽ là ok . Tôi nghĩ bạn đang bối rối với việc quản lý trạng thái "Đang xử lý". –

+0

Bạn hoàn toàn đúng, tôi đã xem và thấy một dịch vụ StateServer duy nhất trên thực tế có thể được chia sẻ giữa nhiều máy chủ web. Tôi sẽ chỉnh sửa câu trả lời cho chính xác. Cảm ơn bạn đã chỉ ra điều này! –

+0

Bạn có thể sử dụng mối quan hệ của khách hàng trong NLB để tránh chuyển sang IIS khác. – MRFerocius

0

Cũng đảm bảo rằng bạn hiện không sử dụng SQL Server để lưu trữ trạng thái phiên mà chỉ xuất phát từ cơ sở dữ liệu. Nếu có, bạn cũng có thể gọi cơ sở dữ liệu mỗi lần.

1

Tôi nghĩ rằng bạn đang chuyển sang một kiến ​​trúc khác: nhiều hơn một Giao diện người dùng cuối.

Bạn sẽ sử dụng NLB?

  • Nếu vậy, tùy chọn tốt nhất của bạn là sử dụng máy chủ trạng thái, nó sẽ đóng vai trò là máy chủ ứng dụng theo khái niệm.

Ở đây trong công ty chúng tôi, chúng tôi đang di chuyển ứng dụng .NET sang hai IIS với Network Load Balancing và các ứng dụng sử dụng để quản lý phiên trong proc.

Chúng tôi đã điều tra rằng có một lựa chọn:

  • sử dụng mối quan hệ khách hàng trong cấu hình NLB, cho phép postback để quay trở lại IIS nơi quá trình này được khởi tạo, giá cả là mất tất cả các NLB ...

Sau khi Microsoft tư vấn, lựa chọn tốt nhất là server Nhà nước :)

Hy vọng nó sẽ giúp!

Trân trọng!

3

Nó có thể là một nỗi đau, nhưng tôi đã quyết định tắt Phiên và xử lý hậu quả. Cho đến nay không có gì không thể vượt qua đã đi lên.

+0

Có nếu bạn có thể thoát khỏi điều đó, nó bỏ qua tất cả các cuộc thảo luận này chúng tôi đang có ở đây và bỏ qua thẳng đến một giải pháp mạnh mẽ hơn và hoạt động tốt hơn. –

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