我已经从this link下载并修改了一个用于EWS推送订阅的项目。根据我的要求,它工作正常。
但是,我需要使该解决方案生效,以便监视一个邮箱并自动对传入的电子邮件执行一些操作。
之前我曾计划将其转换为Windows服务,但是为了实现负载平衡和故障转移,我决定将该项目转换为类库,并添加到现有的MVC网站中,该网站还有其他一些功能用于自动处理传入电子邮件的功能(例如在ServiceNow中创建票证)。
我将此项目作为类库导入到我的MVC Web应用程序中,正在启动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();