Я разрабатываю службу Windows, которая может принимать сокетное соединение, поэтому в методе OnStart
:
protected override void OnStart(string[] args)
{
start();
}
Функция start
выглядит следующим образом:
public async void Start()
{
//initialization things
...
...
TcpListener listener = new TcpListener(IPAddress.Any, port);
listener.Start();
while(true)
{
TcpClient client = await listener.AcceptTcpClientAsync().ConfigureAwait(false);
...
}
...
}
Проблема в том, что соединение не принимается, хотя тот же код отлично работает в стандартном проекте командной строки, я сомневаюсь, что в моем проекте есть проблема: какой поток запускает метод OnStart
?, Когда управление возвращается к OnStart
после await
процесса принятия игнорируется ли асинхронный метод, поскольку это особый случай в службе Windows?Любые предложения приветствуются