Где хранить экземпляр ExchangeService в веб-приложении - PullRequest
1 голос
/ 19 марта 2012

Я использую EWS Managed API 1.2 в своем веб-приложении на C # .NET 3.5.
У меня есть пользователь Exchange, который может выдать себя за пользователя, вошедшего в мое приложение для создания / обновления своих элементов календаря при обмене.

Проблема заключается в том, что при первоначальном создании этого объекта ExchangeService мне приходится ждать 24 секунды. Это ожидание недопустимо долго, если оно происходит при каждом действии, поэтому мое решение - сохранить объект ExchangeService внутри сеанса. Это по-прежнему имеет начальные издержки 24 секунды для каждого пользователя, что нормально, но я чувствую, что пытаюсь решить эту проблему неправильно. Есть ли стандартный способ создания этого экземпляра? Например, при запуске приложения, а затем один объект используется несколькими людьми? Или стандартное место для размещения экземпляра объекта ExchangeService? Кажется, я не могу найти примеры такого рода использования в приложении - все примеры, которые я вижу, показывают, что создание экземпляров происходит в каждом запросе, который делает много очень длинных запросов!

Я также подумал, что возможно создать его в другом потоке, однако поток не смог получить доступ к сеансу, который его создал.

РЕДАКТИРОВАТЬ # 2
Смотрите мой ответ ниже.

1 Ответ

2 голосов
/ 19 марта 2012

Я решил мою проблему.

Если кто-то еще глуп, как я, моя проблема была в том, что для каждого создания я использовал это: service.AutodiscoverUrl("user@domain.com");
После того, как вы выполнили первоначальное автоматическое обнаружение, вы должны использовать адрес обменасервис найден в этом звонке.Затем вы можете просто установить URL-адрес, предшествующий вызову автообнаружения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...