0

我正在使用可移植类库来构建服务类,我们所有的 UI 技术都使用这些服务类与我们的服务进行通信。

这些库将支持 Silverlight、Asp.Net 和任何其他 .Net UI 技术。

由于支持 Silverlight,所有调用都必须是异步的。

使用 Silverlight,我可以在 client.Method() 调用服务后立即调用 CloseAsync()。

但是,我发现这不适用于 Asp.Net 客户端。

我不想在完成的代码中使用 CloseAync(),因为如果正在进行多个异步调用,您可能会遇到时间问题。

我宁愿不必想出很多逻辑,比如在每个异步方法中放置一个 while 循环,以确保 CloseAsync() 没有被调用和完成。

现在我正在测试已完成的部分中使用 Abort 并且一切似乎都工作正常。

只是好奇是否有其他人知道我们在使用 Abort 时可能遇到的任何问题?

谢谢。

我们正在使用.Net 4.5。

4

1 回答 1

0

这取决于您使用的绑定。如果您正在使用使用会话的绑定,则调用 Close[Async] 将尝试首先关闭该会话(例如,具有可靠消息传递的 WSHttpBinding),然后关闭连接,否则它将在服务器端保持活动状态直到它计时出去。如果您使用的是不使用会话的绑定(即 BasicHttpBinding),那么它们几乎是等价的。

于 2013-01-30T21:27:20.943 回答