【发布时间】:2011-03-02 11:10:33
【问题描述】:
我正在构建一个使用 WCF 客户端从我的服务器检索数据的应用程序。
我希望我对服务的调用是异步的,因为他们中的许多人需要更改 UI,而且我不想失去我的应用的响应能力。
我尝试使用*Completed 和*Async:
ServiceUserClient client = new ServiceUserClient();
client.FindUserCompleted += delegate(object sender, FindUserCompletedEventArgs e)
{
// here e.Result always fails
};
client.FindUserAsync(text);
在 *Completed 委托中我总是收到一个错误(远程主机关闭了连接:我启用了我能找到的所有日志记录,但我仍然不明白为什么会出现这些错误)
同步调用始终有效。
我有一个类来处理对服务的所有调用。
有没有办法在线程类之类的内部进行同步调用?
【问题讨论】:
-
您是否也在客户端和服务器上使用了 WCF 跟踪? msdn.microsoft.com/en-us/library/ms733025.aspx
-
是的,我仍然无法弄清楚为什么它给了我这个错误:在尝试建立与 net.tcp://
/ 的连接时操作被中断。 -
我总是在得到 e.Result 之前检查 e.Error。 e.Error 说什么?
-
它说的是我在之前的评论中写的消息: CommunicationObjectAbortedException: The operation was interrupted while trying to build an connection to net.tcp://
/
标签: c# multithreading wcf asynchronous