为什么我的控制台中只有使用 VS 2022 时才会出现这些垃圾?
我设置Options -> Projects and Solutions -> ASP.NET Core -> Auto build and refresh options -> NONE
并且还在这里禁用了“浏览器链接”:
在 VS 2019 中运行同一项目时,这些东西都不会出现,而且我很确定它扰乱了我的 SignalR 连接
我正在尝试使用真正基本的 ASP.NET Core 6 应用程序实现简单的流(非缓冲输出)。
以下简单代码应将 hello world 文本输出到客户端,然后关闭连接(甚至通过添加文档IHttpResponseBodyFeature
选项):
app.MapGet("/a", async (ctx) =>
{
var gg = ctx.Features.Get<Microsoft.AspNetCore.Http.Features.IHttpResponseBodyFeature>()!;
gg.DisableBuffering();
await ctx.Response.Body.WriteAsync(Encoding.UTF8.GetBytes("Hello, World!"));
await ctx.Response.Body.FlushAsync();
await Task.Delay(2000);
});
Run Code Online (Sandbox Code Playgroud)
这当然是我试图实现的行为的一个简单示例。
对应用程序的简单curl 请求可以显示hello world 文本仅在等待2 秒后才到达客户端。
在 .NET Framework 上,以下代码按预期工作:
Response.Clear();
Response.Buffer = false;
Response.BufferOutput = false;
Response.Output.WriteLine("Hello World!");
Response.Output.Flush();
System.Threading.Tasks.Task.Delay(2000).Wait();
Response.End();
Run Code Online (Sandbox Code Playgroud)
简单的curl请求会立即显示“hello world”文本,2秒后连接关闭。
提前致谢。