Исключение HttpListenerException при попытке запустить HttpListener в C#

#c# #http #exception #proxy #httplistener

Вопрос:

Сегодня я начал больше разбираться в HttpListener том, что это такое, поэтому я приношу извинения, если мои знания не очень обширны, когда речь заходит об этом или о том, как это работает. Но при попытке использовать Start() метод для запуска HttpListener я получаю это исключение:

Can't start the agent to listen transactionSystem.Net.HttpListenerException (32): The process cannot access the file because it is being used by another process.

И это исключение также имеет какое-то отношение к самому префиксу.

Вот код, который я использую, мне уже в третий раз приходится его переделывать, но я все равно получаю то же исключение.

 static void ListenTraces()
        {
            try
            {
                var httpListener = new HttpListener();

                httpListener.Prefixes.Add("https://discord.com/");
                try
                {
                    httpListener.Start(); //this line is where the exception happens
                }
                catch (HttpListenerException hlex)
                {
                    Console.WriteLine("Can't start the agent to listen transaction"   hlex);
                    return;
                }
                Console.WriteLine("Now ready to receive traces...");
                while (true)
                {
                    var context = httpListener.GetContext(); 

                    Console.WriteLine(context.Response);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
        }
 

Вся помощь приветствуется 🙂

Ответ №1:

Возможно, на этом порту уже что-то прослушивается (есть ли у вас какой-либо другой сервер разработчиков?)

Попробуйте настроить порт агента на что-то другое, изменив значение реестра.

 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesMsDepSvcParametersListenUrl
 

По умолчанию это значение должно быть http:// :80/MSDEPLOYAGENTSERVICE/ . Вы можете изменить значение 80, например, на 81. Затем перезапустите свою службу.