我已经在Visual C#2010中编译了一项服务。如果我点击BService.exe它会启动但也会显示一个消息框:"无法从命令行或调试器启动服务。必须安装Windows服务(使用installutil.exe),然后启动ServerExplorer,Windows服务管理工具或NET START命令。"如果我单击确定程序关闭。如果我使用C:\ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ installutil.exe安装,并从services.msc启动它也会启动但不显示MessageBox.Show(" sdas&# 34;),所以不起作用。如何安装/运行服务?
public partial class BService : ServiceBase
{
private System.Timers.Timer timer;
public BService()
{
timer = new System.Timers.Timer(2000);
timer.Enabled = true;
timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
InitializeComponent();
}
public void Start() { timer.Start();}
public void Stop() { timer.Stop();}
protected override void OnStart(string[] args) { this.Start();}
protected override void OnStop() { this.Stop();}
void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
MessageBox.Show("sdas");
}
}
答案 0 :(得分:0)
使用以下代码使用C#安装Windows服务:
public void InstallWinService(string winServicePath)
{
try
{
ManagedInstallerClass.InstallHelper(new string[] { winServicePath});
}
catch (Exception)
{
throw;
}
}
使用以下代码使用C#
运行win Serverpublic void StartService(string serviceName)
{
ServiceController service = new ServiceController(serviceName);
try
{
service.MachineName = "localhost";
service.Start();
service.WaitForStatus(ServiceControllerStatus.Running, new TimeSpan(0, 1, 0));
}
catch (Exception ex)
{
throw ex;
}
}
答案 1 :(得分:0)
Windows服务不再(从Vista开始)允许向用户显示UI,没有表单,没有MessageBox,没有控制台Windows,没有.Net Framework更新对话......没有。你无法解决这个问题,如果可以的话,微软会对你的方法进行补丁,这样它就不会长时间工作。这是subject的章节和经文。
更改您的代码,以便记录事件并查看事件查看器(请参阅Using EventLog in ClickOnce application)。