gpt4 book ai didi

c# - 从 ASP.NET 操作返回文件时出现 ERR_SPDY_PROTOCOL_ERROR

转载 作者:行者123 更新时间:2023-11-30 20:17:58 25 4
gpt4 key购买 nike

我有一些返回 CSV 文件的旧 Web API 操作方法。它工作了很长时间,但最近停止了。现在它会导致 ERR_SPDY_PROTOCOL_ERROR。

Chrome 中的 ERR_SPDY_PROTOCOL_ERROR 通常与 Avast 安全相关联,如所述 here .然而,就我而言,这不是由 Avast 引起的,其他网络浏览器也会抛出异常。

我的操作方法如下所示:

[HttpGet]
[Route("csv")]
public HttpResponseMessage SomeMethod([FromUri]SomeSearchCriteria sc)
{
using (MemoryStream stream = new MemoryStream())
{
StreamWriter writer = new StreamWriter(stream, Encoding.UTF8);
string content = someLogic.SomeSearchmethod(sc);
writer.Write(content);
writer.Flush();
stream.Position = 0;

HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
result.Content = new StreamContent(stream);
result.Content.Headers.ContentType = new MediaTypeHeaderValue("text/csv");
result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = "Export.csv" };
return result;
}
}

通过点击按钮时 window.location 的简单更改,angular 前端调用该方法。

整个 Action 方法都正确执行,没有异常。错误仅由网络浏览器显示。

按照描述在 Chrome 中冲洗 socket here没有解决问题。

最佳答案

我已经在 API Controller 中尝试过这个方法并通过 chrome 浏览器调用,它抛出 net::ERR_CONNECTION_RESET

在响应中填充了StreamContent 有一些问题,在结果内容中使用ByteArrayContent,它完美地工作。

    [HttpGet]
[Route("csv")]
public HttpResponseMessage SomeMethod([FromUri]SomeSearchCriteria sc)
{
using (MemoryStream stream = new MemoryStream())
{
StreamWriter writer = new StreamWriter(stream, Encoding.UTF8);
string content = "test";
writer.Write(content);
writer.Flush();
stream.Position = 0;

HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
//result.Content = new StreamContent(stream);
result.Content = new ByteArrayContent(stream.ToArray());
result.Content.Headers.ContentType = new MediaTypeHeaderValue("text/csv");
result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = "Export.csv" };
return result;
}
}

关于c# - 从 ASP.NET 操作返回文件时出现 ERR_SPDY_PROTOCOL_ERROR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42952906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com