我有一个一般的设计问题:
我有一个用C#编写的邮件服务器
然后我有一个用C#编写的ASP.NET论坛软件
现在我想将邮件服务器集成到ASP.NET论坛应用程序中。
例如,我想让一个人可以从论坛创建一个邮件列表,并让用户有机会将自己添加到论坛中的邮件列表成员,然后将新的列表成员添加到相应的邮件列表中。服务器。
由于服务器是一个单独的控制台/ winforms / service应用程序,我首先认为我最好使用.NET远程处理。
但我的第二个想法是,有些用户可能会在主机上托管他们的论坛
(a)他们没有虚拟机器可以做他们想做的事情
(b)主持人的管理员可能不想为此安装额外的邮件服务器或额外费用
(c)用户可能有一个只允许添加网络应用程序的服务计划,而不是外部程序(很可能)
现在,我想问:
是否有可能以某种方式将邮件服务器完全集成到ASP.NET应用程序中?
(我有服务器+ ASP.NET应用程序的完整源代码)
好吧,它可能不是一个页面或一个ashx处理程序,而是一个像http模块的东西? 或者将TCP / IP应用程序集成到asp.net的一般方法是什么? (当然我假设有相应的端口可用/转发 - 我也可以将它作为外部应用程序与电子邮件服务器一起运行)
答案 0 :(得分:1)
在理想的情况下,我会做以下事情:
在您自己的服务器上进行设置,并公开您的Web应用将要/可以与之交互的WCF / Web服务。
如果您不能或不想让自己继续运行,那么您可以收取订阅费。
答案 1 :(得分:0)
这可能不是一个好主意,但您可以在Global.asax中启动一个线程,并在应用程序池运行时进行后台处理/不重新加载Web应用程序。所以你可以在那里启动你的服务器,但你无法控制它的生命周期
答案 2 :(得分:0)
添加到chris166的评论......您也无法控制应用程序何时启动。 [由于在请求页面之前不会加载应用程序...]在Web应用程序和控制台/服务应用程序之间设置某种集成可能更好。
我可能倾向于建立近实时集成,其中邮件服务器轮询论坛应用程序以获取所请求的更改。