悬赏园豆:20
[已关闭问题]
<table border="0" cellspacing="0" cellpadding="0" width="90%" align="left">
<tbody>
<tr>
<td class="txt4lt" style="word-wrap: break-word;" width="625"><span>
<p align="left"><span style="font-size: x-small; font-family: Arial;">我做了个订阅系统,先实现的是下面的绿色代码,没有采用异步订阅,运行都很正常.</span></p>
<p align="left"> <span style="color: #00ff00;">[OperationContract(IsOneWay = true)]<br /> void Subscribe(Guid id);</span></p>
<p align="left"> </p>
<p> <span style="color: #33cc00;"> try<br /> {<br /> m_proxy.Subscribe(m_guid);<br /> subscribed = true; <br /> }<br /> catch (Exception Ex)<br /> {<br /> MessageBox.Show(Ex.Message);<br /> }<br /><br /></span>但是,当我修改为下面的红色代码时,采用异步来实现订阅动作,却出现了问题. 服务正常连接断开都正常,但我故意断开客户端网络连接时,当异步订阅时,就没有出现网络访问异常报告,而是报告回调错误System .ServiceModel .Diagnostics.callbackException</p>
<p align="left">程序就退出了! 而同步时,会报告网络访问异常报告,程序还是可以使用,不会退出!</p>
<p align="left">请教下! 这个是什么问题啊? 该如何处理?</p>
<p align="left">非常感谢!</p>
<p align="left"> </p>
<p align="left"> <span style="color: #ff0000;"> try<br /> {<br /> m_proxy.BeginSubscribe(m_guid, OnLinkFuwuqiCompletionStartAutoForBeginSub, null); <br /> }<br /> catch (Exception Ex)<br /> {<br /> MessageBox.Show(Ex.Message);<br /> }<br /> <br /><br />void OnLinkFuwuqiCompletionStartAutoForBeginSub(IAsyncResult asyncResult)<br /> {<br /> m_proxy.EndSubscribe(asyncResult);<br /> subscribed = true;<br /> }<br /><br /></span></p>
</span><br /></td>
</tr>
</tbody>
</table>