0

这是一个错误日志:

note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
        thread 'arbiter:724dcce3-b3b3-4523-8b02-3b2e9fa035dd:actix-net-worker-62' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 11, kind: WouldBlock, message: "Resource temporarily unavailable" }', src/libcore/result.rs:997:5

这是我的服务器设置:

let _ = server::new(move || {
        App::with_state()
            // Enable logger
            .middleware(middleware::Logger::default())
            .resource("/default", |r| HttpResponse::Ok)
    })
    .bind(&localhost_port)
    .unwrap_or_else(|_| panic!("Can not bind to {}", &localhost_port))
    .start();

我确实看过另一个actix示例,其中包括

.shutdown_timeout(0)    // <- Set shutdown timeout to 0 seconds (default 60s)

但不要认为它为我解决了这个问题。

在本地运行正常,但是当我在 Ubuntu 上执行二进制文件时会出现此错误16.04

这是一个相关的问题:https ://stackoverflow.com/a/14370767建议设置一个setting a send timeout with the SO_SNDTIMEO socket option.

4

1 回答 1

0

您的问题与 Rust(或 Actix)无关。您的问题是其他一些程序已经在您尝试绑定的同一端口上侦听。您需要确定它是哪个程序,例如:

sudo netstat -an --program | grep $PORT

(替换$PORT为您的端口号),然后终止该程序或使用另一个端口。

于 2019-03-07T08:09:35.897 回答