You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Entity Framework与MongoDB遇版本兼容错误:容器Mongo8.0.3报Wire Version4

解决MongoDB驱动与服务器Wire Version不兼容问题

问题分析

报错提示服务器报告Wire Version为4(对应MongoDB 3.2版本),但你的容器实际运行的是MongoDB 8.0.3,核心原因是应用连接的并非容器内的MongoDB服务,而是本地另一个低版本MongoDB进程,或是容器服务未正确启动/映射端口。

解决步骤

1. 排查本地端口占用

确认27017端口是否被本地MongoDB服务占用:

  • Windows:执行命令:
    netstat -ano | findstr :27017
    
    若结果显示非Docker进程的PID,结束对应进程或停止本地MongoDB服务:
    net stop MongoDB
    
  • Linux/macOS:执行命令:
    lsof -i :27017
    
    杀死占用端口的非Docker进程:
    kill -9 <PID>
    

2. 验证容器状态与版本

  • 确认容器正常运行:
    docker ps
    
    确保mongo-db容器状态为Up,端口映射显示0.0.0.0:27017->27017/tcp。
  • 进入容器验证MongoDB版本:
    docker exec -it mongo-db mongod --version
    
    确认输出版本为8.0.3。

3. 重建容器(若上述步骤无效)

旧容器可能存在缓存问题,重新创建容器:

docker-compose down
docker-compose up -d

4. 确认连接目标

用MongoDB客户端连接mongodb://localhost:27017,查看服务器版本:

mongo --eval "db.version()"

确保返回版本为8.0.3。

5. 检查驱动版本兼容性

若以上步骤都确认无误仍报错,检查项目NuGet包版本:

  • 确保MongoDB.EntityFrameworkCore和MongoDB.Driver为支持MongoDB 8.x的最新稳定版,在NuGet包管理器中更新这些包即可。

补充说明

Wire Version是MongoDB客户端与服务器的通信协议版本,8.0.3对应的Wire Version为21,远高于驱动要求的7。只要确保应用连接的是正确的容器服务,该错误即可解决。

内容的提问来源于stack exchange,提问作者Don Tomato

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 00:17:04