2014-10-16 63 views
7

我想自托管一个简单的WebAPI上的现有注册冲突:Owin自主机 - 无法监听前缀的“http://本地主机:12345 /”,因为它与机器

public class AccountViewApplication 
    { 
     protected IDisposable WebApplication; 

     public void Start() 
     { 
      WebApplication = WebApp.Start<WebPipeline>("http://myhost.mymachine.me:12345"); 
      new AccountViewApplication().Start(); 
     } 

     public void Stop() 
     { 
      WebApplication.Dispose(); 
     } 
    } 

我第一次跑这一点,它开始听就好了,但下一次,我尝试 - 我得到这个:

无法监听前缀“http://myhost.mymachine.me:12345/”,因为它与机器上的现有注册冲突

我该怎么做才能让它每次都听,而不是compl ain关于现有的预订?

回答

2

如果它抱怨现有注册,那是因为其他端口正在运行。如果它第一次工作,那么这听起来像你的第一个程序实例仍在运行。

检查任务管理器中的程序名称,看它是否仍然存在。

+1

以编程方式处理呢? – IamStalker 2017-05-04 07:17:04

+0

@IamStalker你可以捕捉到HttpListenerException并在新端口上尝试它。基本上在WebApp.Start(...)上创建一个循环,最多X次重试。 – Salgat 2017-07-27 15:53:35