c# - 无法侦听前缀“http://IPAddress:Port/”,因为它与机器上的现有注册冲突
问题描述
ACOPTesterListener 方法第一次在侦听器 URI 上收到消息时效果很好,但在随后执行 GetContext 时失败并出现数据异常错误,并显示以下消息:无法侦听前缀“ http://IPAddress:Port/ ”,因为它与机器上的现有注册冲突。
我启动后台 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
我在 ACOPTesterListener 方法 try catch 上设置了一个断点,然后运行 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 时,该方法异常并出现“无法侦听”错误。感谢您提供解决此问题的任何帮助。
解决方案
推荐阅读
- ios - 实体“GAIHit”上的 GoogleAnalytics.Property“参数”正在使用 nil 或不安全的 NSValueTransformer
- python - 使用 Python 从 API 访问数据(疑问)
- php - 在 laravel 5.8 中上传图片
- javascript - 测试 package.json types 属性是否适用于相应的 javascript 文件
- git - 更新一个 git 提交
- java - Java Streams - 使用 GroupingBy 和计数收集到地图,但如果特定字段为 Null,则计数为 0
- java - 如何解决我的测试项目中的 io.netty 错误
- c# - 我如何总结每 5 个数字而不是所有数字?
- python - LinearRegressor.train() 通过“...不是可调用对象”异常
- c++ - 在 cpp 中清除控制台