CÁC GIẢI PHÁP LẬP TRÌNH C# - Trang 504

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. -->

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.