English 中文(简体)
WCF: DuplexSession 海峡,亚丁 业务和例外
原标题:WCF: DuplexSessionChannel, Asynchronous Operations and an Exception
  • 时间:2009-09-04 06:47:31
  •  标签:

今天 我有一个WCF问题,尽管它可能涉及到其他联网模式。 NET也是这样。

我有一个WCF服务机构,它揭露了“一刀切”行动。 现在,这项服务有向客户发送电文的反馈渠道。

不管怎么说,我试图(或许是)将这一天平方法从我的客户中轻松地称作。 关于DuplexSessionChannel,我叫BeginSend(Message, OnSendComplete, 无)和我有“OnSendComplete(IAsyncResult)”方法,在DuplexSessionChannel上叫Env(asyncResult)。

该处有背信弃义,采用相同的BeginSend()/EndSend()模式,向客户发送回机。 Current.GetCallbackChannel.

客户在从服务反馈渠道收到电文时,用DuplexSessionChannel电话接通。

尽管有些事情正在发挥作用,但I dont理解“终端<代码”和“底线”、“业务”和“(......)”方法的实际效果,这是我需要向我解释的。

我询问,因为我是在呼吁结束服务局(回到客户处)时偶尔会遇到例外,抱怨一项收集工作已经修改(我知道这一例外意味着什么,但并不是为什么会发生,或者究竟是在哪里发生)。 我正在与一家银灯客户一道使用“DuplexHttpBelle”。

我不是世界妇联的专家,但我不需要了解细节。 在我职业生涯中,我看到了这种从头到尾的那种模式,但从来没有真正理解正在发生什么。

提前感谢。

最佳回答

如同你的问题一样,它只是关于Begin/End APM(作为方案编制模式)。 简言之,APM采用像 the法一样的合成方法。

R Foo(A a);  // R is some result type, A is some argument type

并把它分为Aync BeginFoo和EnFoo方法。 主要的优点在于,行动正在采取一些可能长期运作的真正不成熟的系统操作(例如与网络交谈);例如,与网络交谈可能带上数百毫米或更多。 这种模式使你能够告诉联合国系统开始行动,然后在行动成果成熟时请你回头。 模式的好处是,在等待这一呼吁时,你不必有经过管理的穿透镜(例如,你可以有数千个等待的网络读写/做成,而不需要数千条read、hur、read子是昂贵的)。

因此,Begin oo是你如何以这些论点开始采用这种方法,然后当你被召回(通知结果已经准备好)时,恩波就是你如何取得结果。 在一般情况下,如果Foo可能放弃一个特殊的例外,那么这一例外可能来自Begin呼吁或“最终呼吁”,而且你必须准备在这两个地方处理。

比如Send(可能无效)的情况? 我忘记了这一天,因为那是一片路,你只是要火get。 但例外情况仍会发生(例如,我试图派人,但有人不打上我的网络电缆),因此,这可能产生例外......并且鉴于Begin/End APM,这种例外可能来自最终呼吁。 实际上,这种例外是叫Send的,因此,你呼吁EnSend为这个系统提供一种办法,让你在你叫BeginSend后说一些错误。

问题回答

暂无回答




相关问题
热门标签