已使用的EADDRINUSE地址

时间:2015-07-11 04:05:30

标签: asp.net asp.net-core kestrel-http-server

当我在OS X上运行dnu . kestrel启动asp.net 5服务器,然后按CTL+C停止服务器,然后第二次运行dnu . kestrel,我收到以下例外:

  

Sullys-MacBook-Pro:Test1App Sully $ dnx。隼

     

System.Exception:错误-48 EADDRINUSE地址已在使用中     在Microsoft.AspNet.Server.Kestrel.Networking.Libuv.Check(Int32 statusCode)[0x00000] in:0     在Microsoft.AspNet.Server.Kestrel.Networking.Libuv.listen(Microsoft.AspNet.Server.Kestrel.Networking.UvStreamHandle句柄,Int32积压,Microsoft.AspNet.Server.Kestrel.Networking.uv_connection_cb cb)[0x00000] in:0     在Microsoft.AspNet.Server.Kestrel.Networking.UvStreamHandle.Listen(Int32 backlog,System.Action`4回调,System.Object状态)[0x00000] in:0   ^ C

终端就像服务器正在运行一样,因为我必须再次按CTL+C来终止服务器进程。虽然它正在“运行”,但实际上我无法从浏览器导航到它。

是否有正确的方法在我更改代码时关闭服务器,而不必终止终端,打开新终端,导航到我的项目目录并重新启动红隼?

我在SO上看到过与此相关的其他错误;他们似乎都与Android有关。我没有看到任何与红隼相关的内容以及dnu

EADDRINUSE

2 个答案:

答案 0 :(得分:2)

在OS X上按下终端中的Enter键应该停止红场。发生的事情是Cntrl-C将其置于挂起状态,然后您必须找到该进程并为该进程发出unix kill命令。问题https://github.com/aspnet/KestrelHttpServer/issues/26指的是。虽然我确信我会说一个线程说它将被修复,以便Cntrl-C或Cntrl-Z可以在Kestrel的所有环境中工作

答案 1 :(得分:0)

我知道这是一个OSX问题,但在我将--server.urls=http://*:9000更改为--server.urls=http://*:9000;https://*:9000以尝试支持https后,我在Windows中收到此异常。它看起来像the semi-colon is not supported

在使用.UseUrls的RC2中也是如此(“http:// :9000”,“https:// :9000”)