2

当我dnu . kestrel在 OS X 上运行启动 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] 在:0 在 Microsoft.AspNet.Server.Kestrel.Networking.UvStreamHandle.Listen (Int32 积压,System.Action`4 回调,System.Object 状态)[0x00000] in :0 ^C

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

在我更改代码时是否有适当的方法来关闭服务器,而不必杀死终端,打开一个新终端,导航到我的项目目录并重新启动 kestrel?

我在 SO 上看到了与此相关的其他错误;它们似乎都与Android有关。我还没有看到任何与 kestrel 和dnuforEADDRINUSE

4

2 回答 2

2

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

于 2015-07-11T16:58:10.660 回答
0

我知道这是一个 OSX 问题,但是在我更改为尝试支持 https 之后,我在 Windows 中遇到了这个--server.urls=http://*:9000异常--server.urls=http://*:9000;https://*:9000。好像不支持分号

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

于 2016-05-10T14:05:01.497 回答