Не удалось прослушать префикс «http://IPAddress: порт /», поскольку он конфликтует с существующей регистрацией на компьютере - PullRequest
0 голосов
/ 15 января 2020

Метод ACOPTesterListener прекрасно работает при первом получении сообщения по URI прослушивателя, но завершается неудачно с ошибкой исключения данных при последующем выполнении GetContext со следующим сообщением: Не удалось прослушать префикс 'http://IPAddress: Порт / ', поскольку он конфликтует с существующей регистрацией на компьютере.

Запускаю фоновый поток http-прослушивателя:

#region "Start Http Listener Thread"
ACOPTesterListenerCS acoptesterlistenercs = new ACOPTesterListenerCS();
Thread HttpListenerThread = new Thread(new ThreadStart(acoptesterlistenercs.ACOPTesterListener));
HttpListenerThread.IsBackground = true;
HttpListenerThread.Start();
PropertiesCS.p_ACOPTesterListenerThreadFlag = true;
#endregion

Вот класс прослушивателя:

#region "ACOPTesterListener"
public void ACOPTesterListener()
{
    try
    {  
        #region "Continue to listen until Middleware is closed"
        while (PropertiesCS.p_ACOPTesterListenerThreadFlag)
        {
         #region "Waits for request"
         HttpListenerContext webcontext = PropertiesCS.p_ACOPTesterListener.GetContext();
         HttpListenerRequest webrequest = webcontext.Request;
         #endregion

         #region "Read middleware test request response message"
         Stream RequestMsg = webrequest.InputStream;
         StreamReader webstreamreader = new StreamReader(RequestMsg);
         string RequestBody = webstreamreader.ReadToEnd();
         string contenttype = webrequest.ContentType;
         #endregion
        }
        #endregion
        PropertiesCS.p_ACOPTesterListener.Stop();
    catch (Exception ex)
    {
        PropertiesCS.p_Message = "ACOPTesterListener - Error message: " + ex.Message;
        return;
    }
}
#endregion

Я установил точку останова в методе try catch ACOPTesterListener, затем выполнил команду netstat -ano.

  • Перед первым событием прослушивателя отображалась следующая информация netstat:

    • TCP 10.73.10.121:86 0.0.0.0 Прослушивание 4
  • После первого события прослушивателя отображалась следующая информация о netstat:

    • TCP 10.73.10.121:86 0.0.0.0 Прослушивание 4
    • TCP 10.73 .10.121: 86 10.73.10.121:51365 Установлено 4

Событие листинга работает, но когда метод ACOPTesterListener пытается выполнить следующий GetContext, метод исключает метод с помощью «Fails» Слушать "ошибка. Любая помощь в решении этой проблемы приветствуется.

...