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>