Я скачал и изменил один проект из по этой ссылке для EWS Pu sh Подписка. В соответствии с моими требованиями он работает нормально, как и ожидалось.
Однако мне нужно включить это решение для мониторинга одного почтового ящика и автоматического выполнения некоторых действий с входящими электронными письмами.
Ранее у меня были планы чтобы преобразовать его в сервис Windows, но для балансировки нагрузки и отработки отказа, я решил преобразовать этот проект в библиотеку классов и добавить к существующему веб-сайту MVC, который уже имеет некоторые другие функции для автоматической c обработки входящих писем (например, создание билетов в ServiceNow).
Я импортировал этот проект в виде библиотеки классов в свое веб-приложение MVC, я запускаю метод мониторинга почтовых ящиков внутри Global.asax.cs
файл. Кажется, все работает без ошибок. Он может попасть в строку WriteLog("Listening for incoming messages...");
в файле Notify.cs
.
Однако после получения нового электронного письма оно не получает никакого уведомления. Я подозреваю, что TCPListener не работает внутри MVC решения. Может кто-нибудь помочь мне решить эту проблему или предложить лучший способ размещения этой службы мониторинга почтовых ящиков с переключением при сбое.
Вы можете обратиться к приведенной выше ссылке для получения исходного кода библиотеки классов. Разница лишь в том, что я вызываю приведенный ниже код из файла Global.asax.cs
вместо Program.cs
.
Notify myNotify = new Notify();
myNotify.Start();
Обновление: Забыл упомянуть, TCPListener
настроен на прослушивание через порт 5050
. На всякий случай важно упомянуть:
// Listen on port 5050
_listener = new TcpListener(5050);
_listener.Start();