Dịch vụ Web XML và Remoting Microsoft .NET Framework phần 4
Số trang: 7
Loại file: pdf
Dung lượng: 166.69 KB
Lượt xem: 10
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 tạo một đối tượng khả-truy-xuất-từ-xa trong IIS (để có thể sử dụng SSL hay IIS authentication) thay cho một host chuyên biệt. Đặt file cấu hình và assembly vào một thư mục ảo, và thay đổi URI sao cho nó kết thúc bằng .rem hay .soap.
Nội dung trích xuất từ tài liệu:
Dịch vụ Web XML và Remoting Microsoft .NET Framework phần 4 1.1 Quản lý các đối tượng ở xa trong IIS Bạn muốn tạo một đối tượng khả-truy-xuất-từ-xa trong IIS (để có thể sử dụng SSL hay IIS authentication) thay cho một host chuyên biệt. Đặt file cấu hình và assembly vào một thư mục ảo, và thay đổi URI sao cho nó kết thúc bằng .rem hay .soap.Thay vì tạo một host chuyên biệt, bạn có thể quản lý một lớp khả-truy-xuất-từ-xa trongIIS (Internet Information Services). Điều này cho phép bạn bảo đảm các lớp khả-truy-xuất-từ-xa sẽ luôn có hiệu lực, và cho phép bạn sử dụng các tính năng của IIS như SSLEncryption và Integrated Windows authentication.Để quản lý một lớp khả-truy-xuất-từ-xa trong IIS, trước hết bạn phải tạo một thư mục ảo.Thư mục này chứa hai thứ: file cấu hình dùng để đăng ký các lớp khả-truy-xuất-từ-xa vàthư mục bin dùng để chứa Class Library Assembly tương ứng (hoặc cài đặt assembly vàoGAC).File cấu hình này hoàn toàn tương tự với file cấu hình mà bạn sử dụng cho một host tùybiến. Tuy nhiên, bạn phải tuân theo các quy tắc: • Bạn phải sử dụng kênh HTTP (mặc dù có thể sử dụng Binary formatter đối với các kích thước thông điệp nhỏ hơn). • Bạn không thể chỉ cụ thể địa chỉ cổng. IIS lắng nghe tất cả các cổng bạn đã cấu hình trong IIS Manager (cổng 80 và 443). • URI phải kết thúc bằng .rem hay .soap. • File cấu hình phải có tên là Web.config, nếu không nó sẽ bị bỏ qua.File Web.config dưới đây sẽ đăng ký lớp đã được trình bày trong mục 12.7: thay cho SOAP formatter (mặc định). --> Client có thể sử dụng đối tượng được quản lý trong IIS giống như đối tượng được quản lýtrong một host tùy biến. Tuy nhiên, tên thư mục ảo sẽ là một phần của URI. Ví dụ, nếufile Web.config vừa trình bày ở trên được đặt trong thư mục ảohttp://localhost/RemoteObjects thì URL đầy đủ sẽ làhttp://localhost/RemoteObjects/RemoteObject.rem. Khi quản lý một đối tượng với IIS, tài khoản được sử dụng để thực thi đối tượng là tài khoản ASP.NET (được định nghĩa trong file machine.config). Nếu tài khoản này không có quyền truy xuất cơ sở dữ liệu (là trạng thái mặc định), bạn sẽ gặp lỗi khi chạy ví dụ này. Để giải quyết vấn đề này, bạn hãy xem mục 7.17. 1.2 Phát sinh sự kiện trên kênh truy xuất từ xa Bạn cần tạo một client có thể nhận một sự kiện do đối tượng ở xa phát sinh. Phải chắc rằng bạn đang sử dụng các kênh hai chiều (bidirectional channel). Tạo một đối tượng khả-truy-xuất-từ-xa bên client (có thể nhận sự kiện từ server).Mặc dù cú pháp thụ lý sự kiện không hề thay đổi khi bạn sử dụng .NET Remoting, nhưngbạn cần tạo một client có thể thụ lý sự kiện từ một đối tượng ở xa. Dưới đây là các yêucầu chính: • Lớp khả-truy-xuất-từ-xa phải sử dụng chế độ được-client-kích-hoạt (client- activated) hay chế độ kích hoạt đơn-nhất (singleton activation)⎯không phải chế độ kích hoạt gọi-một-lần (single-call activation). Điều này bảo đảm đối tượng vẫn “còn sống” giữa các lần gọi phương thức, cho phép nó phát sinh sự kiện đến client. • Client phải sử dụng kênh hai chiều để nó có thể nhận các kết nối do server khởi tạo. • Đối tượng EventArgs phải là khả-tuần-tự-hóa để nó có thể được chuyển qua các biên miền ứng dụng. • Client phải sử dụng một đối tượng khả-truy-xuất-từ-xa để nhận sự kiện (được gọi là listener). Theo đó, listener sẽ dựng một sự kiện cục bộ mà client có thể xử lý được. Đối tượng ở xa không thể trực tiếp phát sinh sự kiện đến một lớp bình thường vì lớp bình thường không thể được truy xuất từ các miền ứng dụng khác. • Bạn phải thay đổi các file cấu hình của client và server để cho phép “full serialization” (điều này không cần thiết với .NET 1.0).Dưới đây là lớp khả-truy-xuất-từ-xa mà bạn có thể sử dụng để phát sinh một sự kiện đếnclient. Lớp này cung cấp phương thức StartTask để khởi chạy một bộ định thời, phát sinhsau một thời gian ngắn (khoảng 10 giây). Khi bộ định thời phát sinh, đối tượng khả-truy-xuất-từ-xa dựng lên sự kiện TaskComplete.using System;using System.Timers;public delegate void TaskCompleted(object sender, TaskCompleteEventArgs e);public class RemoteObject : MarshalByRefObject { public event TaskCompleted TaskComplete; private Timer tmr = new Timer(); public void StartTask() { tmr.Interval = 10000; tmr.Elapsed += new ElapsedEventHandler(tmrCallback); tmr.Start(); } private void tmrCallback(object sender, ElapsedEventArgs e) { tmr.Enabled = false; if (TaskComplete != null) { TaskComplete(this, new TaskCompleteEventArgs(Task completed on server)); } } public override object InitializeLifetimeService() { return null; }}[Serializable()]public class TaskCompleteEventArgs : EventArgs ...
Nội dung trích xuất từ tài liệu:
Dịch vụ Web XML và Remoting Microsoft .NET Framework phần 4 1.1 Quản lý các đối tượng ở xa trong IIS Bạn muốn tạo một đối tượng khả-truy-xuất-từ-xa trong IIS (để có thể sử dụng SSL hay IIS authentication) thay cho một host chuyên biệt. Đặt file cấu hình và assembly vào một thư mục ảo, và thay đổi URI sao cho nó kết thúc bằng .rem hay .soap.Thay vì tạo một host chuyên biệt, bạn có thể quản lý một lớp khả-truy-xuất-từ-xa trongIIS (Internet Information Services). Điều này cho phép bạn bảo đảm các lớp khả-truy-xuất-từ-xa sẽ luôn có hiệu lực, và cho phép bạn sử dụng các tính năng của IIS như SSLEncryption và Integrated Windows authentication.Để quản lý một lớp khả-truy-xuất-từ-xa trong IIS, trước hết bạn phải tạo một thư mục ảo.Thư mục này chứa hai thứ: file cấu hình dùng để đăng ký các lớp khả-truy-xuất-từ-xa vàthư mục bin dùng để chứa Class Library Assembly tương ứng (hoặc cài đặt assembly vàoGAC).File cấu hình này hoàn toàn tương tự với file cấu hình mà bạn sử dụng cho một host tùybiến. Tuy nhiên, bạn phải tuân theo các quy tắc: • Bạn phải sử dụng kênh HTTP (mặc dù có thể sử dụng Binary formatter đối với các kích thước thông điệp nhỏ hơn). • Bạn không thể chỉ cụ thể địa chỉ cổng. IIS lắng nghe tất cả các cổng bạn đã cấu hình trong IIS Manager (cổng 80 và 443). • URI phải kết thúc bằng .rem hay .soap. • File cấu hình phải có tên là Web.config, nếu không nó sẽ bị bỏ qua.File Web.config dưới đây sẽ đăng ký lớp đã được trình bày trong mục 12.7: thay cho SOAP formatter (mặc định). --> Client có thể sử dụng đối tượng được quản lý trong IIS giống như đối tượng được quản lýtrong một host tùy biến. Tuy nhiên, tên thư mục ảo sẽ là một phần của URI. Ví dụ, nếufile Web.config vừa trình bày ở trên được đặt trong thư mục ảohttp://localhost/RemoteObjects thì URL đầy đủ sẽ làhttp://localhost/RemoteObjects/RemoteObject.rem. Khi quản lý một đối tượng với IIS, tài khoản được sử dụng để thực thi đối tượng là tài khoản ASP.NET (được định nghĩa trong file machine.config). Nếu tài khoản này không có quyền truy xuất cơ sở dữ liệu (là trạng thái mặc định), bạn sẽ gặp lỗi khi chạy ví dụ này. Để giải quyết vấn đề này, bạn hãy xem mục 7.17. 1.2 Phát sinh sự kiện trên kênh truy xuất từ xa Bạn cần tạo một client có thể nhận một sự kiện do đối tượng ở xa phát sinh. Phải chắc rằng bạn đang sử dụng các kênh hai chiều (bidirectional channel). Tạo một đối tượng khả-truy-xuất-từ-xa bên client (có thể nhận sự kiện từ server).Mặc dù cú pháp thụ lý sự kiện không hề thay đổi khi bạn sử dụng .NET Remoting, nhưngbạn cần tạo một client có thể thụ lý sự kiện từ một đối tượng ở xa. Dưới đây là các yêucầu chính: • Lớp khả-truy-xuất-từ-xa phải sử dụng chế độ được-client-kích-hoạt (client- activated) hay chế độ kích hoạt đơn-nhất (singleton activation)⎯không phải chế độ kích hoạt gọi-một-lần (single-call activation). Điều này bảo đảm đối tượng vẫn “còn sống” giữa các lần gọi phương thức, cho phép nó phát sinh sự kiện đến client. • Client phải sử dụng kênh hai chiều để nó có thể nhận các kết nối do server khởi tạo. • Đối tượng EventArgs phải là khả-tuần-tự-hóa để nó có thể được chuyển qua các biên miền ứng dụng. • Client phải sử dụng một đối tượng khả-truy-xuất-từ-xa để nhận sự kiện (được gọi là listener). Theo đó, listener sẽ dựng một sự kiện cục bộ mà client có thể xử lý được. Đối tượng ở xa không thể trực tiếp phát sinh sự kiện đến một lớp bình thường vì lớp bình thường không thể được truy xuất từ các miền ứng dụng khác. • Bạn phải thay đổi các file cấu hình của client và server để cho phép “full serialization” (điều này không cần thiết với .NET 1.0).Dưới đây là lớp khả-truy-xuất-từ-xa mà bạn có thể sử dụng để phát sinh một sự kiện đếnclient. Lớp này cung cấp phương thức StartTask để khởi chạy một bộ định thời, phát sinhsau một thời gian ngắn (khoảng 10 giây). Khi bộ định thời phát sinh, đối tượng khả-truy-xuất-từ-xa dựng lên sự kiện TaskComplete.using System;using System.Timers;public delegate void TaskCompleted(object sender, TaskCompleteEventArgs e);public class RemoteObject : MarshalByRefObject { public event TaskCompleted TaskComplete; private Timer tmr = new Timer(); public void StartTask() { tmr.Interval = 10000; tmr.Elapsed += new ElapsedEventHandler(tmrCallback); tmr.Start(); } private void tmrCallback(object sender, ElapsedEventArgs e) { tmr.Enabled = false; if (TaskComplete != null) { TaskComplete(this, new TaskCompleteEventArgs(Task completed on server)); } } public override object InitializeLifetimeService() { return null; }}[Serializable()]public class TaskCompleteEventArgs : EventArgs ...
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 4Gợ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