小编mci*_*s01的帖子

适用于多个用户的EWS通知中心

我正在尝试创建一个服务来将交换通知推送到asp.net应用程序,最终使用SignalR.

我的计划是创建一个通知中心,在每个用户登录到asp应用程序时为其预订,并为他们监听通知.当收到通知时,项目的第二部分是使用signalR仅向每个用户发送正确的通知.一旦他们注销或超时,通知中心将取消订阅.

到目前为止,我已经完成了一些基本的测试,并且可以通过我的凭证硬编码在一个小的控制台应用程序中接收通知.我正在努力的是如何同时为多个人这样做.例如,我是否必须为每个用户创建单独的线程,还是有更好的方法?

我想无论我不得不使用模仿而不是持有每个用户的凭据吗?如果每个用户都有活动会话,我还必须找到一种自动刷新超时的方法.

下面是我发现并且一直在玩的一些代码,我将很感激任何想法或任何人可以分享我如何能够最好地实现这一目标的例子.

非常感谢

安迪

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Threading.Tasks;
using Microsoft.Exchange.WebServices.Data;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {

                ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);
                service.Url = new Uri("https://server/EWS/Exchange.asmx");
                service.Credentials = new NetworkCredential("user", "pass", "domain");
                SetStreamingNotifications(service); 
                while (true)
                { }


        }

        static void SetStreamingNotifications(ExchangeService service)
        {
            // Subscribe to streaming notifications on the Inbox folder, and listen
            // for "NewMail", "Created", and "Deleted" events.
            StreamingSubscription streamingsubscription = service.SubscribeToStreamingNotifications( …
Run Code Online (Sandbox Code Playgroud)

asp.net exchange-server exchangewebservices signalr-hub

5
推荐指数
1
解决办法
1847
查看次数