Разработка самообновляющейся службы Windows Asp.Net Core, которая работает примерно так, как показано ниже:
- Служба загружает новый выпуск и распаковывает его в папку «update»
- Служба запускает процесс обновления
- Программа обновления останавливает службу и ожидает завершения службы
- Программа обновления перемещает текущую папку bin в «резервное копирование», а затем «обновление» вbin "
- Программа обновления должна снова запустить службу
Проблема
Вкл 5. Возникла проблема, из-за которой порт, используемый мной для запуска моего приложения, можетбыть занятым Даже если я подожду, пока порт освободится, как 2 минуты, это не произойдет.
Но при вызове программы обновления вручную, он работает просто отлично.Порт мгновенно освобождается, и служба может быть запущена снова.
Программа обновления запускается так в службе:
Process process = new Process {
StartInfo = new ProcessStartInfo(Path.Combine(parent, "VersionUpdater.exe")) {
CreateNoWindow = true,
UseShellExecute = false
}
};
process.Start();
Похоже, она все еще подключена к процессу службы, хотя они получили разные PID.
Кто-нибудь знает, как я могу отделить процессы или открыть порт?