2014-10-16 62 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