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