Do tnet Ядро приложения считает, что оно все еще работает, когда окно Chrome все еще открыто - PullRequest
0 голосов
/ 23 марта 2020

У меня есть asp. net core 2.1 приложение, которое использует Kestrel для настройки веб-сервера. Чтобы улучшить взаимодействие с пользователем, при запуске приложения я также запускаю Chrome. Но в последнее время я получаю эту ошибку при отладке:

System.IO.IOException: Failed to bind to address https://127.0.0.1:1985: address already in use. ---> 

Microsoft.AspNetCore.Connections.AddressInUseException: Only one usage of each socket address (protocol/network address/port) is normally permitted ---> 

System.Net.Sockets.SocketException: Only one usage of each socket address (protocol/network address/port) is normally permitted

И единственный способ предотвратить это - убедиться, что любой существующий экземпляр Chrome закрыт перед запуском приложения.

Я убедился, что перед запуском отладчика / приложения мое приложение не запускается через диспетчер задач.

Вот код, который устанавливает сервер:

    var hostUrl = "https://company.site.com:1980/";
    var host = new WebHostBuilder()
        .UseKestrel(options =>
        {
            options.Listen(IPAddress.Parse("127.0.0.1"), 1980, listenOptions =>
            {
                listenOptions.UseHttps("Cert.pfx", "NotReal123");
            });
        })
        .UseUrls(hostUrl)
        .UseContentRoot(Directory.GetCurrentDirectory())
        .UseIISIntegration()
        .UseStartup<Startup>()
        .UseShutdownTimeout(TimeSpan.FromSeconds(60))
        .Build();
    host.Start();

Мое лучшее предположение заключается в том, что Chrome активно поддерживает этот порт открытым, есть ли способ закрыть соединение при сбое / закрытии приложения?

...