【问题标题】:HttpContextBase does not contain a definition for 'WebSockets' MVCHttpContextBase 不包含“WebSockets”MVC 的定义
【发布时间】:2022-01-10 00:27:49
【问题描述】:

我已经构建了一个 rest api(mvc 应用程序)。我想重建数据加载并通过 http-post/-get 的 websocket 调用它。

我试过了:

public class WebsocketController : Controller
{
    
    [HttpGet("/ws")]
    public async Task Get()
    {
        if (HttpContext.WebSockets.IsWebSocketRequest)
        {
            using WebSocket webSocket = await
                               HttpContext.WebSockets.AcceptWebSocketAsync();
            await Echo(HttpContext, webSocket);
        }
        else
        {
            HttpContext.Response.StatusCode = (int)HttpStatusCode.BadRequest;
        }
    }
}

这不起作用,因为未定义 WebSocket。

是否可以将 websocket 添加到 mvc 控制器?

在 ms 文章 (https://docs.microsoft.com/en-us/aspnet/core/fundamentals/websockets?view=aspnetcore-3.1) 中,它说要在 StartUp.cs 中添加一些内容

但我的 mvc 解决方案在 Global.asax.cs 文件中没有 startup.cs,而是一个无效的 Application_Start

【问题讨论】:

  • 您的应用程序面向哪个 .net 框架?
  • .net 框架 4.7.2
  • .net 4.7.2 文件没有 Startup.cs。 .net 4.7.2 中的 HttpContextBase 类也没有 Websocket 相关方法。您阅读的Ms文章适用于.net core,与.net 4.7.2不同

标签: c# asp.net-mvc websocket


【解决方案1】:

为了让 Websocket 正常工作,我制作了一个新的 asp.net core (.net 5.0) 项目

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-18
    相关资源
    最近更新 更多