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

DSharpPlus连接Lavalink返回404(预期101):原因及解决方法问询

错误分析与解决办法

错误含义

机器人控制台的WebSocketException (404)表示:尝试与Lavalink建立WebSocket连接时,服务器返回了404(资源未找到)状态码,而非WebSocket握手必须的101(协议切换成功)状态码,导致连接失败。

结合Lavalink日志里的No mapping for GET /,可以确定核心问题:机器人请求的是Lavalink的根路径/,但Lavalink的WebSocket服务并不在根路径,而是部署在带版本号的特定端点上。

解决步骤

  • 先确认你的Lavalink版本,对应匹配正确的WebSocket端点路径:
    • Lavalink v4.x:使用/v4/websocket
    • Lavalink v3.x:使用/v3/websocket
  • 在DSharpPlus的Lavalink节点配置中,补全完整的WebSocket URL。例如:
    若原配置为ws://127.0.0.1:2333,需修改为ws://127.0.0.1:2333/v4/websocket(对应v4版本)
  • 重启机器人和Lavalink服务器,重新发起连接

附错误日志

机器人控制台错误

[2024-01-14 21:30:38 +01:00] [401 /LavalinkConn] [Crit ] Failed to connect to Lavalink, retrying in 7500 ms.
System.Net.WebSockets.WebSocketException (0x80004005): The server returned status code '404' when status code '101' was expected.
   at System.Net.WebSockets.WebSocketHandle.ValidateResponse(HttpResponseMessage response, String secValue)
   at System.Net.WebSockets.WebSocketHandle.ConnectAsync(Uri uri, HttpMessageInvoker invoker, CancellationToken cancellationToken, ClientWebSocketOptions options)
   at System.Net.WebSockets.ClientWebSocket.ConnectAsyncCore(Uri uri, HttpMessageInvoker invoker, CancellationToken cancellationToken)
   at DSharpPlus.Net.WebSocket.WebSocketClient.ConnectAsync(Uri uri)
   at DSharpPlus.Lavalink.LavalinkNodeConnection.StartAsync()

Lavalink控制台日志

2024-01-14T21:32:31.346+01:00  WARN 68551 --- [  XNIO-1 task-2] o.s.web.servlet.PageNotFound             : No mapping for GET /
2024-01-14T21:32:31.347+01:00  INFO 68551 --- [  XNIO-1 task-2] l.server.io.RequestLoggingFilter         : GET /

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 00:38:31