actix_rt 2.0.2 的“系统未运行”

问题描述

我尝试更新到 actix_rt 2.0.2,但一直收到以下错误

线程“main”因“系统未运行”而恐慌

我的最小例子在这里

use actix_rt;
use actix_web::{HttpServer,App,HttpResponse};

async fn hello() -> HttpResponse {
    HttpResponse::Ok().finish()
}

#[actix_rt::main]
async fn main() -> std::io::Result<()> {
    let server = HttpServer::new(move || {
        App::new().route("/",actix_web::web::get().to(hello))
    });
    server.bind("127.0.0.1:8080")?.run().await
}

cargo.toml

[package]
name = "my_app"
version = "2.2.0"
authors = ["me"]
edition = "2018"

[dependencies]
actix = "0.10"
actix-web = { version = "3.3.2",default-features = false }
actix-rt = "2.0.2"

我假设它一定是actix板条箱之间的某些版本不兼容。是否有版本号的组合或我缺少的一些明显的东西来让它们一起工作?

我需要 actix_rt 2.0.x 以便我可以与 Criterion

集成

提前感谢您提供任何见解。

干杯!

解决方法

您的 actix crate 版本不兼容。您可以将 actix-rt 降级到 1,或者升级到测试版,例如:

actix = "0.11.0-beta.2"
actix-web = "4.0.0-beta.3"
actix-rt = "2.0.2"
,

#在您的cargo.toml 文件中使用这些

    actix = "0.11.0"
    actix-web = "3.3.2"
    actix-rt = "1.1.1"
    serde = { version = "1.0.123",features = ["derive"] }

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...