1

我一直在尝试调试凤凰应用程序。
为此,我使用了以下说明:
- 设置断点:require IEx; IEx.pry
- 启动调试服务器:iex -S mix phx.server

问题出现在启动服务器时,上面的指令将我引导到 elixir 交互式 shell(iex(1)>)并且不允许服务器运行,如果我手动执行代码,它会在 prys 中停止,但我希望拥有服务器每当请求触发时运行和停止。有什么解决办法吗?

我目前正在使用 earlang 1.20、elixir 1.5 和 phoenix 1.3

4

1 回答 1

0

iex -S mix phx.server命令打开 IEx shell 是常见的行为。它同时在为 Phoenix 端点配置的端口上运行 Web 服务器MIX_ENV。对于它执行的每个IEx.pry()断点,它应该在命令行上提示您是否要在那里打开 IEx shell。

检查MIX_ENV您的服务器正在哪个服务器上运行,例如在 IEx shell 中键入以下内容:

Mix.env

然后在config/目录内的文件中找到配置。该行应如下所示:

config :nameofyourapp, Web.Endpoint,
  http: [port: 4000],

也许那里配置了 4000 以外的东西?或者其他一些应用程序,或者甚至是您的 Web 应用程序之前启动的实例已经在该端口上侦听,因此禁止调试服务器绑定到该端口?在这种情况下,请关闭其他正在运行的mix phx.server进程。

于 2018-02-02T17:54:35.643 回答