2013-01-09 24 views
6

Công ty của tôi chứa một tá trang web và các DB bị cô lập (các lược đồ giống nhau). mỗi khách hàng có trang web riêng (hồ bơi ứng dụng khác nhau) và DB.thực hành tốt nhất cho DAL và cấu hình trên Multi-Tenant bị cô lập DB

mọi trang web đều có cấu hình riêng, một số chuỗi kết nối, nhưng tất cả đều có cùng một lược đồ để định cấu hình.

cust1.domain.com

cust2.domain.com

cust3.domain.com

Chúng tôi muốn hợp nhất tất cả các trang web để một (hồ bơi ứng dụng duy nhất) và ở lại với cô lập DBS vì lý do bảo mật và số lượng lớn dữ liệu.

thực tiễn tốt nhất để thiết kế DAL và cấu hình của nó là gì? những tác động của nó là gì, nếu số lượng lớn người thuê nhà sẽ được cùng một lúc? hiện một hồ bơi ứng dụng có thể quản lý tình trạng này hoặc nó có thể được quản lý bằng cách nào đó?

BTW, chúng tôi đang sử dụng tư cách thành viên asp để xác thực người dùng.

Cảm ơn trước, Eddie

+0

Bạn cố gắng để tránh những trường hợp mà người dùng A, diễn ra vào web.config cơ sở dữ liệu B người dùng - có đúng không? – Aristos

+0

vâng, một trong những mục tiêu. mọi khách hàng đều có kết nối máy chủ riêng và các cài đặt khác. –

+0

Làm thế nào về mỗi khách hàng có tài khoản người dùng cá nhân của họ và trên cơ sở dữ liệu cần sử dụng để kết nối - thông qua web.config – Aristos

Trả lời

0

Sử dụng Application_PostAuthenticate sự kiện trong global.asax để tải cơ sở dữ liệu chính xác và sau đó đóng kết nối trong Application_EndRequest

+0

Tôi đang thiếu một phần mà tôi có thể xác định whitch DB với aspmembership được nạp - cấu hình để tải. giả sử rằng tôi muốn hợp nhất tất cả các ràng buộc vào trang web đơn và khi khách hàng (nhóm người dùng trong công ty cụ thể) được kết nối, iis (hoặc trách nhiệm của nó) sẽ chuyển hướng đến cấu hình của khách hàng (như connectionStrings). –

0

Một lựa chọn là sử dụng hồ sơ cá nhân trong hội viên và lưu trữ một mẩu thông tin điều đó sẽ cho phép bạn xác định xem họ nên kết nối với db thực tế nào. Nhược điểm là bạn sẽ cần phải lưu trữ thông tin này trong suốt thời gian của phiên người dùng, do đó, một cookie hoặc biến phiên là cần thiết.

Tác động của một trang web so với nhiều trang web phụ thuộc rất nhiều vào môi trường và ứng dụng của bạn, hiện tại bạn có nhiều trang web trên một hộp hay bạn có trang trại không? Bạn có biết số lượng người dùng đồng thời cho mỗi trang web, số lượng lưu lượng truy cập không? Trình giám sát hiệu suất có thể giúp bạn ở đây để xem mức độ bận rộn của mỗi trang web nhưng bạn có thể cần phải đăng nhập nhiều hơn để xác định các số liệu như người dùng đồng thời. Tôi đã tìm thấy this câu hỏi lỗi máy chủ về hiệu suất IIS 7 có thể giúp đỡ

+0

hiện tại, Chúng tôi có nhiều trang web trên một hộp (trong tương lai chúng tôi sẽ chuyển tất cả sang amazon và có thể tạo một số máy chủ web). mỗi công ty có 10 đến 20 người dùng. hầu hết các hệ thống dựa trên báo cáo vì vậy hầu hết nếu thời gian máy bận rộn với máy chủ sql executions. –

+0

với mức độ sử dụng bạn không nên có bất kỳ vấn đề với IIS, bạn có thể nhìn vào sử dụng một khu vườn web cho việc này. kiểm tra [link] (http://www.codeproject.com/Articles/114910/What-is-the-difference-between-Web-Farm-and-Web-Ga) để biết chi tiết về cấu hình IIS. Trừ khi ứng dụng của bạn đang cố gắng mở hàng trăm kết nối, tôi không tin rằng bạn sẽ gặp bất kỳ vấn đề nào nhưng rõ ràng là tôi không biết cơ sở mã hoặc môi trường của bạn nên không thể đảm bảo bất cứ điều gì – Nathan

+0

cảm ơn @Nathan. Hầu hết ứng dụng web của chúng tôi đang thực hiện thao tác sql trên lượng lớn dữ liệu (dựa trên các báo cáo). tôi có thể chỉ định từng khách hàng (nhóm người dùng trong công ty cụ thể) với quy trình làm việc khác không? làm thế nào để tôi cô lập giữa các khách hàng để duy trì mức độ bảo mật cao? –

0

Bạn có thể thử 'Lược đồ dữ liệu được chia sẻ với lược đồ khác nhau' từ kiến ​​trúc dữ liệu nhiều đối tượng thuê. Trong DAL của bạn, bạn có thể chọn lược đồ cụ thể phù hợp với người dùng hiện tại. Đơn giản và an toàn theo cách này

Tiếp tục đọc http://msdn.microsoft.com/en-us/library/aa479086.aspx

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