如何將C#中的控制檯應用程序轉換爲Windows服務?有沒有一個模板可以做到這一點?如何將控制檯應用程序轉換爲Windows服務?
3
A
回答
8
在您的代碼中,您可以使用Environment.UserInteractive屬性來確定您處於控制檯/服務中的模式。
例子:
static class Program
{
static void Main(params string[] args)
{
var service = new Service1();
if (!Environment.UserInteractive)
{
var servicesToRun = new ServiceBase[] { service };
ServiceBase.Run(servicesToRun);
return;
}
Console.WriteLine("Running as a Console Application");
Console.WriteLine(" 1. Run Service");
Console.WriteLine(" 2. Other Option");
Console.WriteLine(" 3. Exit");
Console.Write("Enter Option: ");
var input = Console.ReadLine();
switch (input)
{
case "1":
service.Start(args);
Console.WriteLine("Running Service - Press Enter To Exit");
Console.ReadLine();
break;
case "2":
break;
}
Console.WriteLine("Closing");
}
}
public partial class Service1 : ServiceBase
{
public Service1() { InitializeComponent(); }
public void Start(string[] args) { OnStart(args); }
protected override void OnStart(string[] args) { }
protected override void OnStop() { }
}
0
當我在調試模式下構建簡化調試時,我經常將Windows服務作爲控制檯應用程序運行。
您的情況最直接的方法可能是創建一個新的Windows服務,以使您的主入口點的正確結構和正確的引用,然後將您的控制檯應用代碼集成到該結構中。
讀取/寫入/從控制檯寫入必須重寫。
如果您必須閱讀用戶輸入,請考慮使用替代方法將該輸入提供給服務。如果您將輸出寫入控制檯,請將其寫入日誌。我個人會推薦NLog。
-3
項目的一般屬性 - >更改類型類庫。
可以去除主要功能,因爲它不會在
+1
主要功能當然是在Windows服務中調用的。 – 2013-03-19 16:36:33
相關問題
- 1. 將控制檯應用程序轉換爲Windows服務
- 2. 如何將控制檯應用程序轉換爲服務應用程序
- 3. 將控制檯應用程序轉換爲Windows應用程序
- 4. 將控制檯應用程序轉換爲服務?
- 5. 將WCF服務轉換爲控制檯應用程序
- 6. C#將控制檯應用程序轉換爲服務
- 7. 將C#控制檯應用程序作爲Windows服務運行
- 8. 將控制檯應用程序安裝爲Windows服務
- 9. 如何將控制檯應用程序轉換爲.dll?
- 10. 如何將GUI C++應用程序轉換爲控制檯應用程序?
- 11. 如何將此Winforms應用程序轉換爲控制檯應用程序?
- 12. 將Java控制檯程序轉換爲Web應用程序
- 13. Windows服務參數爲控制檯應用程序
- 14. 運行Windows服務作爲一個控制檯應用程序
- 15. 將C++程序轉換爲Windows服務?
- 16. 如何將datasnap服務器從vcl應用程序轉換爲windows服務
- 17. 將控制檯應用程序轉換爲使用BackgroundWorker的GUI
- 18. 控制檯應用程序到服務
- 19. REPL控制檯應用程序服務
- 20. 如何將Azure服務總線中繼創建爲Windows服務? (未作爲控制檯應用程序)
- 21. 如何將控制檯應用程序更改爲Windows窗體應用程序?
- 22. 將GUI C++應用程序轉換爲控制檯之一
- 23. 將C#控制檯應用程序轉換爲VB.NET和VBA
- 24. 將控制檯應用程序變爲服務?
- 25. 將控制檯應用程序轉換爲搖擺應用程序
- 26. 將DOS應用程序轉換爲Win32控制檯應用程序?
- 27. 需要將Windows控制檯應用程序類轉換爲ISynchronizeInvoke對象
- 28. 在Windows控制檯應用程序中使用ax2012服務
- 29. 從控制檯應用程序切換到Windows應用程序
- 30. 將c#命令行應用程序轉換爲Windows服務
歡迎被調用,以#1,請仔細閱讀[常見問題]和[提問]幾次.. – 2013-03-19 07:19:55
你嘗試過什麼? http://msdn.microsoft.com/en-us/library/zt39148a(v=vs.80).aspx – Alex 2013-03-19 07:20:34
我沒有得到你的問題控制檯應用程序和Windows服務是兩個不同的東西。你想添加Windows服務在控制檯程序? – Shrivallabh 2013-03-19 07:22:04