1

我开始使用 Inets http:

> inets:start(httpd, [{port, 8060}, {server_name, "myserver"},
> {server_root, "/Users/jonas/code"},                         
> {document_root, "/Users/jonas/code/mydocs"},             
> {bind_address, {192, 168, 2, 5}}]).                         
{error,inets_not_started}

所以我唯一的错误信息是{error,inets_not_started}. 有什么方法可以让我获得更多关于出了什么问题的信息?

4

4 回答 4

3

首先,要解决您的问题,只需通过以下方式启动inets应用程序(错误原因表明它未启动):

inets:start().

其次,通常启动SASL 应用程序可以提高 Erlang/OTP 错误/崩溃的一点可读性——但这里并非如此。

于 2014-03-23T23:52:24.833 回答
2

你需要先打电话inets:start/0。有关更多详细信息,请参阅inets 文档

于 2014-03-23T23:54:19.123 回答
1

开始(服务,ServiceConfig,如何)-> {ok,Pid} | {错误,原因}

Dynamically starts an inets service after the inets application has been started. 

所以你需要先调用这个函数。

开始()->开始(类型)->确定| {错误,原因}

类型:类型 = 永久 | 瞬态 | 暂时的

 Starts the Inets application.
于 2014-03-24T02:01:01.683 回答
1

这是一个很好的问题,因为不幸的inets:start/[0,1,2,3]函数重载并且httpc文档不是很清楚,启动inets也会自动启动httpc服务。

特别是当 on 只是跳转到HTTP CLIENT SERVICE START/STOP部分以快速启动时,因此缺少模块描述中的注释。

  • inets:start/[0,1]使用调用的默认配置文件启动inets应用程序本身服务(仅记录在 中)。httpcdefaulthttpc

  • inets:start/[2,3](应该称为)一旦应用程序已经启动start_service,就会启动可以在其上运行的服务之一inets(即ftpc, tftp, httpc, httpd)。inets

start() ->
start(Type) -> ok | {error, Reason}

    启动 Inets 应用程序。

start(Service, ServiceConfig) -> {ok, Pid} | {error, Reason}
start(Service, ServiceConfig, How) -> {ok, Pid} | {error, Reason}

在启动Inets 应用程序后    动态启动 Inets 服务
    (使用inets:start/[0,1])。


关于注意事项httpc

httpc模块文档的顶部:

启动 Inets 应用程序时,会启动默认配置文件的管理器进程。此 API 中未明确使用配置文件的函数将访问默认配置文件。

也就是说,该httpc服务将使用名为 的默认配置文件自动启动default

1> inets:start().
ok
2> httpc:get_options(all, default).
{ok,[{proxy,{undefined,[]}},
     {https_proxy,{undefined,[]}},
     {pipeline_timeout,0},
     {max_pipeline_length,2},
     {max_keep_alive_length,5},
     {keep_alive_timeout,120000},
     {max_sessions,2},
     {cookies,disabled},
     {verbose,false},
     {ipfamily,inet},
     {ip,default},
     {port,default},
     {socket_opts,[]},
     {unix_socket,undefined}]}
3>
3> inets:start(httpc, [{profile, lofa}]).
{ok,<0.95.0>}
4>
5> httpc:get_options(all, default).
{ok,[...]}
6> httpc:get_options(all, lofa).
{ok,[...]}

有趣的是,当使用不存在的配置文件时,错误消息是inets_not_started

7> httpc:get_options(all, balabab).
{error,inets_not_started}
于 2020-10-05T16:54:27.627 回答