返回首页
当前位置: 主页 > 编程语言 > C#教程 >

如何创建Exchange的Push订阅

时间:2016-10-07 21:13来源:电脑教程学习网 www.etwiki.cn 编辑:admin

1. 前言

Exchange提供了两种通知机制:pull机制和push机制。Pull 订阅易于使用(EWS API 提供了相应的实现)但是无法实时获取用户的信息,需要不断轮询去获取;Push订阅可以实时获取用户的信息,且不需要轮询,但是EWS API没有提供具体的实现,如果要使用的话需要自行编写监听程序,本文主要介绍了监听程序的编写过程。

2. 创建监听程序

1)创建HTTPListener

新建一个HttpListener对象,确定要监听的地址“http://192.168.21.8:80/P ushSubscription /”,然后开始监听,并检索异步传入的信息,需要注意的是监听的端口一定要是订阅程序可以访问的。
 
     _Listener = new HttpListener();
_Listener.Prefixes.Add(“http://192.168.21.8:80/PushSubscription/”);
_Listener.Start();
      _Listener.BeginGetContext(new AsyncCallback(ListenerCallback), _Listener);

2)读取异步返回的信息

新建一个StreamReader对象,读取异步返回的字节流。
 
HttpListener listener = (HttpListener)result.AsyncState;
      HttpListenerContext context = listener.EndGetContext(result);
      HttpListenerRequest request = context.Request;
      string sRequest = "";
      using (StreamReader reader = new StreamReader(request.InputStream))
      {
              sRequest = reader.ReadToEnd();
              _Requests.Add(sRequest);
       }

3)处理返回信息

   首先要判断返回的信息是否来自Exchange订阅,如果是的话从返回的XML数据中提取相关信息处理即可。
   if (Request.Contains("exchange") &&Request.Contains("SendNotificationResp onseMessage"))
     {
          XmlDocument oNotifications = new XmlDocument();
           Notifications.LoadXml(Requests);
          XmlNodeListnodeList Notifications = oNotifications. GetElementsByTagName ("Notification", m);
}

3. 创建Push订阅

 首先创建一个ExchangeService并初始化,然后将刚才监听的地址“http://192.168. 21.8:80/ PushSubscription /”作为推送服务断点发起Push订阅。
 
   ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);    
   service.Credentials = new WebCredentials(SysConfig.ExcUserName, SysConfig.ExcPassword, SysConfig.Domain);
   service.Url = new Uri(SysConfig.EmailServer);
   string url=”http://192.168. 21.8:80/ PushSubscription /”
   service.SubscribeToPushNotifications(new List<FolderId>() { id }, url, 30, waterMark, EventType.Created);      
顶一下
(0)
0%
踩一下
(0)
0%
标签(Tag):Exchange Push订阅
------分隔线----------------------------
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
推荐内容