Я создаю HttpListener, пытаясь получить случайный открытый порт (или порт, который отсутствует в IpGlobalProperties.GetActiveTcpConnections ()).Проблема, с которой я сталкиваюсь, заключается в том, что через некоторое время, когда я выполняю эти соединения и избавляюсь от них, я получаю эту ошибку: No more memory is available for security information updates
Есть ли способ решить эту проблему или есть правильный способ избавиться от HttpListeners.Я просто вызываю listener.Close ().
Вот метод, используемый для создания слушателей:
private HttpListener CreateListener()
{
HttpListener httpListener;
DateTime timeout = DateTime.Now.AddSeconds(30);
bool foundPort = false;
do
{
httpListener = new HttpListener();
Port = GetAvailablePort();
string uriPref = string.Format("http://{0}:{1}/", Environment.MachineName.ToLower(), Port);
httpListener.Prefixes.Add(uriPref);
try
{
httpListener.Start();
foundPort = true;
break;
}
catch
{
httpListener.Close();
FailedPorts.Add(Port);
}
} while (DateTime.Now < timeout);</p>
<pre><code> if (!foundPort)
throw new NoAvailablePortException();
return httpListener;
}