ASP.NET Core异步API控制器在客户端上返回ERR_CONNECTION_RESET

时间:2017-07-13 23:43:47

标签: asp.net asp.net-mvc asynchronous

此代码:

            using (var conn = new SqlConnection(_strConn))
            {
                conn.Open();
                using (var cmd = conn.CreateCommand())
                {
                    Response.ContentType = "application/json";
                    Response.StatusCode = (int)HttpStatusCode.OK;
                    cmd.CommandText = "SELECT * FROM sometable FOR JSON AUTO";
                    using (var reader = cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            await Response.WriteAsync(reader[0].ToString());
                        }

                        await Response.Body.FlushAsync();
                    }
                }
            }

工作正常,直到我到达客户端。在Chrome中,我在调用此api控制器方法的连接上获得ERR_CONNECTION_RESET。响应是有效的,但套接字关闭似乎是问题。数据已经通过网络发送。

我尝试从此函数返回多个不同的ActionResults以正确关闭连接但无济于事。

此时我已经将整个响应加载到内存中并返回一个按预期工作的JsonResult但我现在变成了一个可怕的内存消费者。

有什么想法吗?

0 个答案:

没有答案