Тест Github CI падает с открытым TCP-портом (TCPListener, .net) [закрыто]C#

Место общения программистов C#
Ответить
Anonymous
 Тест Github CI падает с открытым TCP-портом (TCPListener, .net) [закрыто]

Сообщение Anonymous »

Тесты GitHub CI завершаются неудачей с сообщением «Отказано в доступе» при попытке открыть порт TCP в классе TCPListener; журнал можно найти здесь.
Конфигурация GitHub CI находится здесь, но я отключаю запуск тестов. Локальные тесты работают почти нормально (иногда один из них может дать сбой).
Проект GitHub, где можно найти весь исходный код, находится здесь
В тестовом коде я пытался:
  • использовать либо 0.0.0.0, либо 127.0.0.1 в качестве адреса сервера
  • чтобы используйте динамический порт в TCPListener, передав 0 конструктору `

    Код: Выделить всё

    Listener = new TcpListener(IPAddress.Parse(channelCfg.IpAddress), channelCfg.Port)`
    
Но в тестах я пытаюсь использовать случайный порт из диапазона 17000 - 25000.
Код, воспроизводящий поведение (взять из исходного кода)

Код: Выделить всё

public async Task TestTCPPortOpen()
{
Random rand = new Random(DateTimeOffset.Now.Millisecond);
int serverPort = rand.Next(17000, 25000);
Listener = new TcpListener(IPAddress.Loopback, serverPort)
// Port binding throws an exception
}
Мои вопросы:
  • Почему я не могу открыть TCP-порт в тестах
  • Можно ли сделать то, что я хочу протестировать: запустить один или несколько прослушивателей TCP, подключить от 50 до 50 000 клиентов и выполнить некоторые взаимодействия.
  • Что нужно настроить правильно, что я пропущено в моей конфигурации CI или где-то еще.


Подробнее здесь: https://stackoverflow.com/questions/798 ... stener-net
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»