microsoft how example automaticappstartup port owin katana

port - how - System.Net.HttpListenerException: No se pudo escuchar en el prefijo ''http:// localhost: 8080



owin example c# (3)

Cuando se encontró con un error: "Failed to listen on prefix ''http://someURL:somePortNo/'' because it conflicts with an existing registration on the machine." No es realmente necesario que exista una aplicación que escuche activamente en ese puerto, por lo que la salida de Netstat -abno no siempre ayuda. Si la aplicación ya registrada se está ejecutando, puede ayudarlo a determinar qué aplicación está causando el problema al consultar la información que proporciona Netstat.

Sin embargo, recibirá este error incluso después de que la aplicación en cuestión se haya detenido ya que el error indica un registro. El comando de diagnóstico correcto por lo tanto es:

netsh http show urlacl

Necesitamos examinar la salida y verificar si alguna de las URL reservadas en la lista está configurada para escuchar en el puerto específico que su aplicación está tratando de usar. Debe tener en cuenta el valor del campo "URL reservada" para esa aplicación específica. Lo necesitará más adelante para eliminar el registro que está causando el error.

Desinstalar esa aplicación específica, suponiendo que su procedimiento de desinstalación incluya un anulación del registro, puede resolver el problema. Alternativamente, podría adoptar un enfoque más directo y preciso al usar el comando para eliminar una reserva de URL:

(Tenga en cuenta que si el conflicto es legítimo, puede ser mejor volver a configurar su aplicación para que escuche en un puerto diferente).

netsh http delete urlacl url=<<>value of "Reserved URL" in the output of netsh http show urlacl <>>

Cuando el comando funcione, verá el resultado: la URL reservation successfully deleted .

Al ejecutar netsh http show urlacl por segunda vez, verá que el registro de URL se ha ido. Y ahora la ejecución de su aplicación no debería dar lugar al error que estaba viendo anteriormente.

Estoy ejecutando el siguiente código del curso ASP.Net Fundamentals de Scott Allen

using System; using Microsoft.Owin.Hosting; using Owin; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { string uri = "http://localhost:8080"; using (WebApp.Start<Startup>(uri)) { Console.WriteLine("Started!"); Console.ReadKey(); Console.WriteLine("Stopping!"); } } } public class Startup { public void Configuration(IAppBuilder app) { app.UseWelcomePage(); //app.Run( // ctx => ctx.Response.WriteAsync("Hello Owin!")); } } }

Sin embargo, cuando ejecuto la aplicación de consola me aparece un mensaje.

Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Net.HttpListenerExceptio n: Failed to listen on prefix ''http://localhost:8080/'' because it conflicts with an existing registration on the machine. at System.Net.HttpListener.AddAllPrefixes() at System.Net.HttpListener.Start() at Microsoft.Owin.Host.HttpListener.OwinHttpListener.Start(HttpListener liste ner, Func`2 appFunc, IList`1 addresses, IDictionary`2 capabilities, Func`2 logge rFactory) at Microsoft.Owin.Host.HttpListener.OwinServerFactory.Create(Func`2 app, IDic tionary`2 properties) --- End of inner exception stack trace --- at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Objec t[] parameters, Object[] arguments) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invoke Attr, Binder binder, Object[] parameters, CultureInfo culture) at Microsoft.Owin.Hosting.ServerFactory.ServerFactoryAdapter.Create(IAppBuild er builder) at Microsoft.Owin.Hosting.Engine.HostingEngine.StartServer(StartContext conte xt) at Microsoft.Owin.Hosting.Engine.HostingEngine.Start(StartContext context) at Microsoft.Owin.Hosting.Starter.DirectHostingStarter.Start(StartOptions opt ions) at Microsoft.Owin.Hosting.Starter.HostingStarter.Start(StartOptions options) at Microsoft.Owin.Hosting.WebApp.StartImplementation(IServiceProvider service s, StartOptions options) at Microsoft.Owin.Hosting.WebApp.Start(StartOptions options) at Microsoft.Owin.Hosting.WebApp.Start[TStartup](StartOptions options) at Microsoft.Owin.Hosting.WebApp.Start[TStartup](String url) at ConsoleApplication1.Program.Main(String[] args) in e:/EShared/Dev2015/WebA ppScottAllen/ConsoleApplication1/ConsoleApplication1/Program.cs:line 12 Press any key to continue . . .

Ejecuté el monitor de recursos desde la pestaña de rendimiento del administrador de tareas y puedo ver que hay 2 entradas en los puertos de escucha para 8080.

Ambos tienen Imagen = Sistema, PID = 4, IPv6 no especificado, Protocolo TCP, Estado de Firewall No permitido, no restringido

Soy nuevo en los puertos de escucha, ¿cómo puedo hacer que el código funcione?


Pude resolver el problema al desinstalar varios programas. Lamentablemente no probé después de cada una, así que no sé cuál fue.

Incluyeron Dropbox, Goto Assist, Goto Meeting y una aplicación winforms


Tuve el mismo problema, y ​​fue una solución tonta. Tenía otras aplicaciones de consola abiertas que utilizaban el mismo número de puerto, por lo que, después de cerrar todas las aplicaciones de la consola, pude ejecutar y no recibí este error.