gpt4 book ai didi

c# - Windows 服务启动然后立即停止

转载 作者:行者123 更新时间:2023-11-30 17:54:19 25 4
gpt4 key购买 nike

我已经创建了一个 Windows 服务,它创建了一个表单,在该表单中创建了一个工具条图标来管理套接字。我可以通过在 Visual Studio 中创建的安装程序进行安装,但是当我转到“服务”并启动我的服务时,它给我一个错误,提示它立即启动并停止。

这是服务代码:

public Service()
{
InitializeComponent();
}

protected override void OnStart(string[] args)
{
base.OnStart(args);

ServiceName = "WizardServer";
CanPauseAndContinue = false;
CanHandleSessionChangeEvent = true;
CanStop = true;

Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);

try
{
connectionHandler = new ConnectionHandler();
serviceThread = new System.Threading.Thread(new ThreadStart(serviceTarget));
alive = true;
serviceThread.Start();
}
catch {}
}

private void serviceTarget()
{
Application.Run(new Form1(connectionHandler));

while (alive)
{
Thread.Sleep(10000);
}
}

protected override void OnStop()
{
base.OnStop();

try
{
connectionHandler.stop();
}
catch {}

serviceThread.Abort();

alive = false;
Stop();
}

PS:我已经测试了表格,它工作得很好。

最佳答案

我遇到了这个问题,在谷歌上搜索了很多小时,然后我找到了解决方案。您可以在代码中添加以下代码。在类构造函数中添加 InitializeTimer()。您应该在 OnStart( )oTimer.Stop()OnStop() 上。

代码:

  void create()
{
string s = "";
}
void InitializeTimer()
{
oTimer = new System.Timers.Timer(interval);
oTimer.AutoReset = true;
oTimer.Enabled = true;
oTimer.Elapsed += new System.Timers.ElapsedEventHandler(oTimer_Elapsed);
}

void oTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
CreateFileData();
}

void CreateFileData()
{
string path = @"C:\SimpleWcfService\SimpleWindowsService\bin\Release\Singh.txt";
StreamWriter oStreamWriter = new StreamWriter(path, true);
oStreamWriter.WriteLine(DateTime.Now.ToString());
oStreamWriter.Close();
oStreamWriter = null;
}

关于c# - Windows 服务启动然后立即停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16108438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com