Размещение программы мониторинга электронной почты EWS на веб-сайте - PullRequest
0 голосов
/ 11 января 2020

Я скачал и изменил один проект из по этой ссылке для 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();
...