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
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 ...
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ìm kiếm theo từ khóa liên quan:
công nghệ thông tin kĩ thuật lập trình ngôn ngữ lập trình ngôn ngữ C# C# Dịch vụ Web XML và Remoting Microsoft .NET Framework phần cuốiGợi ý tài liệu liên quan:
-
52 trang 429 1 0
-
Top 10 mẹo 'đơn giản nhưng hữu ích' trong nhiếp ảnh
11 trang 311 0 0 -
74 trang 294 0 0
-
96 trang 290 0 0
-
Báo cáo thực tập thực tế: Nghiên cứu và xây dựng website bằng Wordpress
24 trang 288 0 0 -
Đồ án tốt nghiệp: Xây dựng ứng dụng di động android quản lý khách hàng cắt tóc
81 trang 278 0 0 -
EBay - Internet và câu chuyện thần kỳ: Phần 1
143 trang 272 0 0 -
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 271 0 0 -
Tài liệu dạy học môn Tin học trong chương trình đào tạo trình độ cao đẳng
348 trang 269 1 0 -
Bài thuyết trình Ngôn ngữ lập trình: Hệ điều hành Window Mobile
30 trang 262 0 0