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

501

Chương 12: Dịch vụ Web XML và Remoting

private void TaskComplete(object sender,

RemoteObject.TaskCompleteEventArgs e) {

MessageBox.Show("Event received: " + e.Result);

}

}

Để có thể làm việc, bạn phải chắc rằng client đang sử dụng các kênh hai chiều. Do đó, thẻ

<channel>

trong file cấu hình phải trông giống như sau:

<channel ref="tcp" port="0" />

Và không được giống như các ví dụ dưới đây:

<channel ref="tcp server" port="0" />

<channel ref="tcp client" port="0" />

Ngoài ra, bạn phải kích hoạt việc hỗ trợ “full serialization”. Nếu không, server sẽ không được
phép nhận ủy nhiệm cho phương thức

Listener.TaskCompleted

, và sẽ không thể kết nối đến

phương thức thụ lý sự kiện ở xa. Để kích hoạt việc hỗ trợ “full serialization” bên server, bạn
cần thay đổi file cấu hình của host như sau:

<configuration>

<system.runtime.remoting>

<application>

<client url="tcp://localhost:9080/Server">

<activated type="RemoteObject.RemoteObject, RemoteObject"/>

</client>

<channels>

<channel ref="tcp" port="0">

<serverProviders>

<formatter ref="binary" typeFilterLevel="Full" />

</serverProviders>

</channel>

</channels>

</application>

</system.runtime.remoting>

</configuration>

Để kích hoạt việc hỗ trợ “full serialization” bên client, bạn cần thay đổi file cấu hình của
client như sau:

<configuration>