Danh mục

Dịch vụ Web XML và Remoting Microsoft .NET Framework phần cuối

Số trang: 6      Loại file: pdf      Dung lượng: 176.61 KB      Lượt xem: 7      Lượt tải: 0    
tailieu_vip

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Bạn muốn cấu hình thời gian sống của một đối tượng đơn-nhất hay đượcclient-kích-hoạt khi nó không còn được sử dụng. Chỉ định các thiết lập mặc định về thời gian sống trong file cấu hình của host; chép đè phương thức
Nội dung trích xuất từ tài liệu:
Dịch vụ Web XML và Remoting Microsoft .NET Framework phần cuối 1.1 Kiểm soát thời gian sống của một đối tượng ở xa Bạn muốn cấu hình thời gian sống của một đối tượng đơn-nhất hay được- client-kích-hoạt khi nó không còn được sử dụng. Chỉ định các thiết lập mặc định về thời gian sống trong file cấu hình của host; chép đè phương thức InitializeLifetimeService trong lớp ở xa; hoặc hiện thực một cơ chế kiểm soát thời gian sống bên client.Nếu một đối tượng sử dụng chế độ kích hoạt gọi một lần (single-call activation), nó sẽ tựđộng bị hủy vào cuối mỗi lời gọi phương thức. Điều này khác với các đối tượng được-client-kích-hoạt (client-activated) và đơn-nhất (singleton), các đối tượng này có thời giansống lâu hơn vì tuân theo “lifetime lease” (tạm dịch là “hợp đồng cho thuê thời giansống”). Với các thiết lập mặc định, một đối tượng ở xa sẽ tự động bị hủy nếu nó khônghoạt động trong hai phút, miễn là nó đã tồn tại ít nhất năm phút.Host, đối tượng ở xa, và client đều có thể thay đổi các thiết lập về thời gian sống. • Host có thể chỉ định các thiết lập mặc định về thời gian sống trong file cấu hình. Các thiết lập này sẽ áp dụng cho tất cả các đối tượng ở xa mà nó quản lý. • Lớp ở xa có thể chép đè phương thức GetLifetimeService để điều chỉnh các thiết lập lease ban đầu bằng đối tượng ILease. • Client có thể gọi phương thức MarshalByRefObject.GetLifetimeService với một đối tượng ở xa cụ thể để thu lấy một thể hiện ILease. Kế tiếp, client có thể gọi phương thức ILease.Renew để chỉ định lượng thời gian tối thiểu mà đối tượng sẽ sống.Ví dụ dưới đây sử dụng cách tiếp cận thứ nhất (dùng thẻ trong file cấu hìnhcủa host). Các thiết lập lease áp dụng cho tất cả các đối tượng ở xa do host tạo ra. Sửdụng M để chỉ phút hay S để chỉ giây. Đối tượng ở xa có thời gian sống ban đầu là 10phút. Khi client truy xuất đối tượng, thời gian sống của nó tự động được làm mới ít nhấtba phút. Một cách tiếp cận khác là chép đè phương thức InitializeLifetimeService để một đốitượng ở xa tự kiểm soát thời gian sống của nó. Bạn có thể thêm đoạn mã dưới đây vàolớp ở xa để nó có thời gian sống mặc định là 10 phút và thời gian làm mới là 5 phút:public override object InitializeLifetimeService() { ILease lease = MyBase.InitializeLifetimeService(); // Lease chỉ có thể được cấu hình nếu nó đang ở trạng thái ban đầu. if (lease.CurrentState == LeaseState.Initial) { lease.InitialLeaseTime = TimeSpan.FromMinutes(10); lease.RenewOnCallTime = TimeSpan.FromMinutes(5); } 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 nullthay 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 đốitượng đơn-nhất chạy độc lập (và lâu dài) ngay cả khi client không sử dụng nó. 1.2 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 clienttạ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, trongtrường hợp là một assembly dùng chung, phiên bản mới nhất trong GAC. Để hỗ trợ nhiềuphiê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ácnhau. Bạn cần ghi rõ số phiên bản và token khóa công khai khi sử dụng các assemblytrong GAC. Bạn có thể tìm thấy thông tin này bằng cách xem assembly trong WindowsExplorer GAC plug-in (vào thư mục C:WindowsAssembly). File cấu hình của client không phải thay đổi gì hết (trừ việc cập nhật URI, nếu cần).Client “chọn” phiên bản mà nó muốn sử dụng bằng URI tương ứng. The image part with relationship ID rId5 was not found in the file. Hình 12.4 Thư mục C:WindowsAssembly ...

Tài liệu được xem nhiều: