504
Chương 12: Dịch vụ Web XML và Remoting
return lease;
}
Nếu muốn đối tượng có thời gian sống vô hạn, bạn chỉ cần trả về một tham chiếu
null
thay vì
là đối tượng
ILease
. Trường hợp thông thường nhất là bạn muốn tạo một đối tượng đơn-nhất
chạy độc lập (và lâu dài) ngay cả khi client không sử dụng nó.
12.
12.
Ki m soát phiên b n c a các đ i t
ng xa
ể
ả ủ
ố ượ ở
Ki m soát phiên b n c a các đ i t
ng xa
ể
ả ủ
ố ượ ở
Bạn muốn tạo một host có thể quản lý nhiều phiên bản của một đối tượng.
Cài đặt tất cả các phiên bản của đối tượng vào GAC, và đăng ký mỗi phiên bản
tại một endpoint URI khác biệt.
.NET Remoting không có sự hỗ trợ nội tại nào cho việc đánh phiên bản. Khi một client tạo
một đối tượng ở xa, host tự động sử dụng phiên bản trong thư mục cục bộ hoặc, trong trường
hợp là một assembly dùng chung, phiên bản mới nhất trong GAC. Để hỗ trợ nhiều phiên bản,
bạn có ba lựa chọn:
•
Tạo các ứng dụng host riêng biệt. Mỗi host sẽ có một phiên bản khác nhau của
assembly “đối tượng ở xa” và sẽ đăng ký phiên bản của nó với một URI khác nhau.
Cách này buộc bạn phải chạy nhiều ứng dụng host cùng một lúc và thiết thực nhất khi
bạn đang sử dụng IIS (được mô tả trong mục 12.9).
•
Tạo một assembly “đối tượng ở xa” hoàn toàn mới (thay vì thay đổi phiên bản). Theo
đó, bạn có thể đăng ký các lớp trong hai assembly tại các URI khác nhau, sử dụng cùng
host.
•
Cài đặt tất cả các phiên bản của assembly “đối tượng ở xa” vào GAC. Theo đó, bạn có
thể tạo một host ánh xạ các URI khác nhau đến các phiên bản cụ thể của assembly “đối
tượng ở xa”.
Tùy chọn cuối cùng là linh hoạt nhất trong trường hợp bạn cần hỗ trợ nhiều phiên bản. Ví dụ,
file cấu hình dưới đây đăng ký hai phiên bản của RemoteObjects tại hai endpoint khác nhau.
Bạn cần ghi rõ số phiên bản và token khóa công khai khi sử dụng các assembly trong GAC.
Bạn có thể tìm thấy thông tin này bằng cách xem assembly trong Windows Explorer GAC
plug-in (vào thư mục C:\Windows\Assembly).
<configuration>
<system.runtime.remoting>
<application>
<service>
<!-- Thông tin type được chia thành ba hàng cho hợp với
biên trang. Trong file cấu hình, thông tin này phải
được đặt trên một hàng. -->