【问题标题】:EADDRINUSE address already in useEADDRINUSE 地址已被使用
【发布时间】:2015-07-11 04:05:29
【问题描述】:

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

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

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

我在 SO 上看到了与此相关的其他错误;它们似乎都与Android有关。我还没有看到任何与红隼和 dnu 相关的东西 EADDRINUSE

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 我已经看到关于他们使它在所有平台上工作的线程,并且在那里他们提到进入杀死它。对我来说似乎没有。当我按回车时,终端中会出现一个新的空白行;服务器继续运行
    • 尝试按回车几次。这被指出有时是必需的。
    • 我让它工作,但只能通过分配一个新端口,如下所示:“commands”:{“web”:“Microsoft.AspNet.Server.Kestrel --server.urls localhost:17202”,你们有没有设法找到另一种解决方案?
    • 不,当他们宣布 dnx/dnu 将被新的 dotnet CLI 取代时,我停止了在 RC1 中的工作。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2021-10-21
      • 1970-01-01
      • 2021-02-11
      • 2020-11-09
      • 2020-04-08
      • 2021-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多