Csharp/C#教程:两个服务之间的WCF回调分享


两个服务之间的WCF回调

我想在两个服务之间建立连接。 Service1将向service2发送事件通知。

我想在这两个服务之间使用回调。 service1将事件发送到service2,service2将事件传递给客户端。

是否可以在两个服务之间使用回调?

我已经查看了wcf回调的示例,但是无法在服务与服务通信之间找到任何内容。

任何帮助都是适用的。 请参阅下面的1个服务的代码。 我的问题:其他服务的代码如何与回调中的代码相似?

或者在这种情况下,其中一项服务就像客户一样? 那怎么样?

Service1代码:(接口类)

public interface IMyEvents { [OperationContract(IsOneWay = true)] void Event1(); } [ServiceContract(SessionMode = SessionMode.Required, CallbackContract = typeof(IMyEvents))] public interface SampleInterface { [OperationContract] void DoSomethingAndFireEvent(); [OperationContract] void SubscribeEvent(); } 

这是服务类

 public class SampleHandlerSimulator : SampleInterface { static Action m_Event1 = delegate { Console.WriteLine("Catch");}; public void SubscribeEvent() { IMyEvents subscriber = OperationContext.Current.GetCallbackChannel(); m_Event1 += subscriber.Event1; } public static void FireEvent() { m_Event1(); } public void DoSomethingAndFireEvent() { CCStateHandlerSimulator.FireEvent(); } 

通过向其中一个服务引用添加服务引用来配置服务(请参阅其他服务)。 为此,请确保要引用的服务已启动并正在运行,然后右键单击子服务项目并选择“添加服务引用”。 现在,您可以调用父服务公开的方法。

您将需要一个配置了双工绑定的端点用于回叫。 有关双面装订的信息,请参见此处 将新端点配置添加到父服务时,请更新服务引用。 您需要托管您的服务。

这里提出了类似的问题。

您的观点将如下所示:

   

请注意,wsDualHttpBinding是需要注意的重要事项。

您的服务合同将如下所示:

  [ServiceContract(SessionMode = SessionMode.Required, CallbackContract = typeof(IDuplexCallback))] public interface IDuplexService { [OperationContract(IsOneWay = true)] void FormatString(string institution); } 

并且服务实现将如下:

  [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)] public class DuplexService : IDuplexService { IDuplexCallback _callback; string _requestString = String.Empty; public DuplexService() { _callback = OperationContext.Current.GetCallbackChannel(); } public void FormatString(string text) { //Make the thread to sleep for 10 seconds Thread.Sleep(4000); //Format the input data _requestString = string.Format("Welcome to {0}", text); //Pass the string to the client through the call back function _callback.DuplexCallbackFunction(_requestString); } } 

最后IDuplexCallback声明为:

上述就是C#学习教程:两个服务之间的WCF回调分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

  public interface IDuplexCallback { [OperationContract(IsOneWay = true)] void DuplexCallbackFunction(string requestString); } 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1022776.html

(0)
上一篇 2022年1月7日
下一篇 2022年1月7日

精彩推荐