首页 > 解决方案 > 无法侦听前缀“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 命令。

列表事件有效,但是当 ACOPTesterListener 方法尝试执行下一个 GetContext 时,该方法异常并出现“无法侦听”错误。感谢您提供解决此问题的任何帮助。

标签: c#tcplistenertcpclienthttplistener

解决方案


推荐阅读