2010-07-31 30 views
1

我有一個通用的設計問題:

我有一個郵件服務器,用C#寫的。
然後,我有一個網絡論壇軟件,用C#編寫的ASP.NET。

現在我想將郵件服務器整合到ASP.NET論壇應用程序中。 例如,我想讓人們可以從論壇創建一個郵件列表,並讓用戶有機會將自己添加到論壇中的郵件列表成員,然後將新的列表成員添加到相應的郵件列表中在服務器上。集成一個電子郵件服務器到ASP.NET中

由於服務器是一個單獨的控制檯/ winforms /服務應用程序,我首先想到我最好使用.NET遠程處理。

但我的第二個想法是,一些用戶可能會託管主機,其中
(一)他們沒有一個虛擬機,他們可以做他們想做的
(二)的管理員在他們的論壇主機可能不想安裝額外的郵件服務器或額外收取此
(C)的用戶可能有一個服務計劃,只允許添加一個Web應用程序,而不是外部程序(很可能)


現在,我想問:
是否有可能將郵件服務器完全集成到ASP.NET應用程序中不知何故? (我有服務器+ ASP.NET應用程序的完整源代碼)

那麼,它可能不會是一個頁面或ashx處理程序,但像一個http模塊? 或者將TCP/IP應用程序集成到asp.net中的一般方法是什麼? (當然,我假設這些端口是可用/轉發的 - 我也可以將它作爲外部應用程序與電子郵件服務器一起運行)

回答

1

在理想情況下,我會做到以下幾點:

設置它自己的服務器(S)上,並暴露出WCF/Web服務,您的Web App將/可與之交互。

如果你不能或不想承擔保持它自己運行,你可以收取它的訂閱費。

+0

實際上,這是一個非常好的主意。我爲論壇收費。然後我再次收取郵件列表費用。或者我追加了郵件列表郵件。 – 2010-08-05 21:53:09

0

這可能不是一個好主意,但您可以在Global.asax中啓動一個線程,並在應用程序池運行時執行後臺處理,否則Web應用程序不會重新加載。所以你可以在那裏啓動你的服務器,但你無法控制它的生命週期

0

添加到chris166的評論...你也無法控制應用程序何時啓動。 [由於應用程序將不會被加載,直到請求頁面...]它可能是一個更好的主意,設置Web應用程序和控制檯/服務應用程序之間的某種集成。

我可能傾向於設置一個接近實時的集成,其中郵件服務器爲論壇應用程序輪詢所請求的更改。

+0

好吧,我只需要在每次重新啓動後自行申請一個頁面。好吧,如果我不是管理員,那麼我也無法控制它 - 因爲我不知道服務器什麼時候重新啓動,何時重新啓動。但爲什麼投票?論壇應用程序會立即通過.NET遠程處理將更改發送到服務器。不需要投票。但更好的問題將是服務器運行多久。也就是說,webapp會在特定時間後被垃圾收集。 – 2010-08-05 20:44:33

+0

部分是我的偏好......我正在假設您對Web應用程序部署到的環境幾乎沒有控制權。在這種情況下,Web服務API似乎是最可靠/最簡單的方法來實現積分。如果我正確地記得IIS可以託管遠程應用程序,但我可能會傾向於使用Web服務...... – 2010-08-10 21:17:03