【问题标题】:C# Windows Service - UDP listener stops service form starterC# Windows 服务 - UDP 侦听器停止服务表单启动器
【发布时间】:2015-10-06 12:17:17
【问题描述】:

我正在尝试创建一个侦听 UDP 数据包的服务。它在调试模式下工作正常。当我将它安装到服务中时,问题就开始了。从 OnStart() 我运行 startListener()。当侦听器运行服务停止时,当我将其注释掉并重试时,它会起作用。 1053是弹出的错误代码。

public partial class Service1 : ServiceBase
{
    private const int listenPort = 9;

    public Service1()
    {
        InitializeComponent();         
    }

    protected override void OnStart(string[] args)
    {
        StartListener();
    }

    protected override void OnStop()
    {
    }

    private static void StartListener()
    {
        UdpClient listener = new UdpClient(listenPort);
        IPEndPoint groupEP = new IPEndPoint(IPAddress.Any, listenPort);
        try
        {
                byte[] bytes = listener.Receive(ref groupEP);
                string mac = string.Join("", bytes.Skip(6).Take(6).Select(b => b.ToString("x2")));
        }
        catch (Exception e)
        {
        }
        finally
        {
            listener.Close();
        }
    }

}

【问题讨论】:

    标签: c# service udp listener


    【解决方案1】:

    https://stackoverflow.com/a/649948/1736944

    OnStart 事件应该只会让您的服务运行。这不是一个进行实际工作的好地方。

    错误 1053 是当 OnStart 未能在设置的超时(默认超时约为 30 秒)内返回时 Windows 报告的错误。

    【讨论】:

    猜你喜欢
    • 2010-10-28
    • 2017-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-22
    • 2021-05-23
    • 1970-01-01
    • 2023-04-02
    相关资源
    最近更新 更多