如何修复Rust中的资源暂时不可用错误?

问题描述 投票:0回答:1

这是一个错误日志:

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的另一个includes例子:

.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

rust rust-actix
1个回答
0
投票

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

sudo netstat -an --program | grep $PORT

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

© www.soinside.com 2019 - 2024. All rights reserved.