2012-06-17 38 views
9

Tôi luôn tự hỏi, cho phép bạn nói rằng bạn có hai trang web asp.net chạy trong cùng một hồ bơi ứng dụng.Hồ bơi ứng dụng IIS & Lớp học tĩnh

Hãy gọi cho họ Trang web 1 và Website 2

Cả hai trang web tham khảo một số mã được chia sẻ, cho phép gọi nó là Awesome.dll

phép nói rằng Awesome.dll chứa một lớp được định nghĩa như sau

public static class Foo 
{ 
    public static string Bar { get; set; } 
} 

Câu hỏi của tôi:

Cả hai trang web có cùng một lớp tĩnh hoặc có bản sao riêng biệt không? Điều đó có nghĩa là, nếu Trang web 1 có thay đổi đối với Foo.Bar, đó có phải là thay đổi được phản ánh trong trang web 2 không?

Trả lời

8

Sự hiểu biết của tôi là trong khi các trang web sẽ ở trong cùng một App Pool, chúng vẫn sẽ ở trong số App Domain của riêng chúng. Điều đó có nghĩa là họ không thể nhìn thấy các đối tượng của nhau, và mỗi người sẽ có sự khởi tạo riêng của nó đối với lớp tĩnh.

+0

Tôi đã cùng nhau khai thác thử nghiệm nhanh chóng và xác nhận, Cảm ơn! – iamkrillin

0

Mỗi ứng dụng bao gồm (WebSite) đang chạy AppDomain và dữ liệu tĩnh với trong bối cảnh appdomain mặc dù ứng dụng web đang chạy cùng một hồ bơi ứng dụng

Vì vậy Web site2 sẽ không phản ánh với những thay đổi được thực hiện tại trang web.