Jac*_*yan 4 c# wcf windows-services
我有一个项目作为Windows服务部署到生产.但是,对于本地开发目的,将其作为控制台应用程序运行会很有用.目前我有一个Called类ReportingHost
提供我的核心功能,还有一个名为ReportingServiceHost的类,它继承ServiceBase
并允许我将应用程序作为服务运行.还有一个程序类,其主要方法调用ServiceBase.Run
我的ReportingServiceHost.
我想我需要编写一个ReportingConsoleHost
允许我在控制台中运行该功能的类.然后我需要修改我Main
对命令行开关做出反应并选择其中一个.这些是我遇到麻烦的两个部分.
我已经看过这个并尝试使用该代码,但我的应用程序立即退出,它没有显示控制台窗口,并且它不会在关闭前等待Enter.
问题的一部分是我对这些事情的运作方式没有深刻的理解.一个分裂我的功能的权威模式,我运行该功能的两种不同方式,以及一个基于命令行参数选择这些方法之一的主方法是我希望实现的.
我怀疑你的测试项目是配置为Windows exe,而不是控制台exe.使用Windows exe Console.ReadLine
将立即返回.
要使控制台exe既可以作为服务也可以在命令行中运行,将其作为服务项目启动(在Visual Studio中) - 并添加一个检查Environment.UserInteractive
- 即
static void Main() {
if(Environment.UserInteractive) {
// code that starts the listener and waits on ReadLine
} else {
// run the service code that the VS template injected
}
}
Run Code Online (Sandbox Code Playgroud)
您当然也可以使用命令行开关.我在microsoft.public.dotnet.languages.csharp上有一个例子,它充当:
取决于开关
归档时间: |
|
查看次数: |
353 次 |
最近记录: |