gpt4 book ai didi

c# - HttpListeners 和端口

转载 作者:行者123 更新时间:2023-11-30 16:31:05 24 4
gpt4 key购买 nike

我正在通过尝试获取一个打开的随机端口(或一个不在 IpGlobalProperties.GetActiveTcpConnections() 中的端口)来创建一个 HttpListener。我遇到的问题是,在建立这些连接并处理它们一段时间后,我收到此错误: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></p>

<pre><code> if (!foundPort)
throw new NoAvailablePortException();

return httpListener;
}
</code></pre>

<p></p>

最佳答案

您是否尝试过在 Close() 之前调用 listener.Stop()?

要尝试的另一件事是将您的代码包装在 using() {} block 中,以确保正确处理您的对象。

最后,您对监听器做了什么(代码片段可能会有所帮助)?您是否让任何流保持打开状态?

关于c# - HttpListeners 和端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5070817/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com