Я не понимаю почему, но вот оно. Похоже, причина в том, что моя сетевая карта настроена на 2 IP-адреса.
если в коде я указываю один из ips (как я делал выше)
listener.Prefixes.Add("http://myip1:8080/app/");
тогда, чтобы избежать исключения, мне нужно зарегистрировать его со слабым подстановочным знаком, связанным с IP
netsh http add urlacl url=http://myip1:8080/app user=domain\user
однако, если я добавлю префикс с сильным подстановочным знаком (знак плюс)
listener.Prefixes.Add("http://+:8080/app/");
и зарегистрируйтесь с тем же подстановочным знаком
netsh http add urlacl url=http://+:8080/app user=domain\user
тогда нет ошибки, и я могу получить доступ к своему приложению с обоих ip.