2017-02-21 8 views
1

Я следую руководству Майкрософт по разработке приложения, которое использует StreamingSubscription. Он работает, но я всегда получаю System.ArgumentNullException по следующему коду.EWS управляемый API 2.2 Исправление потоковой подписки

ExchangeService srv = new ExchangeService(ExchangeVersion.Exchange2010_SP2); 

     //service.AutodiscoverUrl("[email protected]"); 
     srv.Credentials = new WebCredentials("xxx", "xxx", "xxx");   
     srv.Url = new Uri("https://xx.xx.nl/ews/exchange.asmx"); 

     FolderId gpInbox = new FolderId(WellKnownFolderName.Inbox, new Mailbox("[email protected]")); 

     // Subscribe to streaming notifications in the Inbox. 
     StreamingSubscription sss = srv.SubscribeToStreamingNotifications(
      new FolderId[] { WellKnownFolderName.Inbox }, 
      EventType.NewMail); 

     StreamingSubscriptionConnection c = new StreamingSubscriptionConnection(srv, 30); 
     { 
      c.AddSubscription(sss); 
      c.OnNotificationEvent += OnNotificationEvent; 
      c.OnDisconnect += OnDisconnect; 
      c.Open(); 
     } 

Исключение выбрасывается

StreamingSubscription sss = srv.SubscribeToStreamingNotifications(
      new FolderId[] { WellKnownFolderName.Inbox }, 
      EventType.NewMail); 

Я не могу найти причину, почему это бросает исключение. Я установил последнюю версию API через пакет Nuget

ответ

2

Чтобы получить последнюю версию управляемого API EWS, вам необходимо скомпилировать ее из GitHub https://github.com/OfficeDev/ews-managed-api. Версия NuGet довольно старая и не обновлялась с тех пор, как источник был опубликован публично. Существует ряд проблем, связанных с подписками, которые были исправлены https://github.com/OfficeDev/ews-managed-api/issues?page=1&q=is%3Aissue+is%3Aclosed&utf8=%E2%9C%93 (а также другие, не перечисленные), что, вероятно, является причиной или вашими проблемами.

+0

Спасибо за ваш ответ. Я загрузил и перекомпилировал его, но он по-прежнему вызывает исключение аргумента. Это не приводит к тому, что приложение работает. Более того, это исключает это исключение. – Shift

+0

Следующее, что будет, - пройти через исходный код и выяснить, почему он выбрасывает исключение, а затем исправляет его, если это ошибка. –