2012-10-18 129 views
12

是一個新手到WCF.I有一個場景,我需要創建一個應用程序,運行24x7從郵箱拿起郵件,並創建少報告。我做了它使用winform和它的工作。但我有一個問題,應用程序託管在其上的服務器有一個自動註銷策略,當服務器在一段時間內處於非活動狀態時會關閉我的應用程序。我想我可以將它作爲一個窗口服務來實現。情景,使用它的任何優勢。我想到了WCF服務,因爲它將爲我學習曲線。請諮詢。WCF服務vs窗口服務

更新:該作品根據timer.It坪特定的郵箱每隔5分鐘就看到了新mail.If新郵件時發現它下載 其應用程序中的Excel創建PDF報告,並郵寄回一些電子郵件ID。

使用DLLS:OpenPOP和Itextsharp。

+0

你需要給我們介紹一下你的應用程序是爲更多的細節,比其他「從郵箱拿起郵件並創建一些報告。」 – Bernard

+6

如果您的客戶端正在使用您的服務 – swiftgp

回答

19

Windows服務是您需要的。

WCF是一個通信庫,除非您計劃通過客戶端與您的應用程序進行通信,您不需要它。

您的問題與激活有關,並且您的代碼在後臺保持活動狀態是Windows服務所做的。

這並不難,這將幫助您開始。

http://www.codeproject.com/Articles/14353/Creating-a-Basic-Windows-Service-in-C

+3

好評IanBru。我只是輸入相同的回覆(+1)。這裏是一個鏈接到MS的主題的其他信息:http://msdn.microsoft.com/en-us/library/d56de412%28v=vs.100%29.aspx – Randy

+0

謝謝你...這有助於.. + 1 – Karthik

0

如果你的應用程序做了你想要的,並且在服務器處於活動狀態之前工作正常,那麼你應該考慮通過設置服務器來解決這個問題,使其不進入非活動狀態。換句話說,由於服務器本身不應該進入備用(非活動)模式,我的猜測是,您所說的策略只適用於不活動的用戶用戶 - 策略可能(並且應該) t)影響系統級用戶。

因此,如果您要以系統用戶(或網絡用戶)的身份運行應用程序,則問題應該消失。

根據你的解釋,WCF是不是你的問題的解決方案有兩個原因:

  1. WCF是當你有其他應用程序(客戶端)有用消耗WCF服務) - 它沒有按」 t聽起來像你需要在你的應用程序中的客戶端/服務器服務
  2. 如果您要運行WCF服務作爲當前應用程序運行在同一用戶,您的問題仍然存在(即WCF服務將最終由於政策而不活躍)。
+0

這是客戶端計算機,並且我們無權更改其服務器策略,那麼您只需要WCF即可。我的意思是非活動模式是服務器關閉所有用戶打開的應用程序在一段時間內沒有活動。無論如何改變服務器策略來解決這個問題? – Karthik

+0

您需要告訴客戶端以系統用戶(或網絡)身份運行服務。要查看我想要解釋的內容,請轉到您的服務,然後轉到任何服務的屬性。然後,轉到「登錄」選項卡。您會注意到您可以更改服務將運行的帳戶。 – Jed

+0

服務?我沒有創建一個服務。我做了一個Windows應用程序 – Karthik

2

WCF只在運行web服務時有用。只是一個正常的Windows服務應該在這裏滿足您的需求。只要機器啓動,服務應該繼續運行。

+0

將窗口服務運行,即使用戶註銷?我想它會。你的想法?感謝您的幫助 – Karthik

+0

@karthi:是的。 – Bernard

+0

感謝+1的幫助。 – Karthik