HttpContextBase 不包含“WebSockets”MVC 的定义
Posted
技术标签:
【中文标题】HttpContextBase 不包含“WebSockets”MVC 的定义【英文标题】:HttpContextBase does not contain a definition for '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不同 【参考方案1】:为了让 Websocket 正常工作,我制作了一个新的 asp.net core (.net 5.0) 项目
【讨论】:
以上是关于HttpContextBase 不包含“WebSockets”MVC 的定义的主要内容,如果未能解决你的问题,请参考以下文章
System.TypeLoadException:“无法从程序集“System.Web”加载类型“System.Web.HttpContextBase”,