首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为映像提供服务的异步WebAPI控制器-挂起的HTTP请求

为映像提供服务的异步WebAPI控制器-挂起的HTTP请求
EN

Stack Overflow用户
提问于 2014-05-15 03:13:10
回答 1查看 970关注 0票数 2

我目前正在玩一个提供图像服务的异步WebAPI控制器,我面临着一种奇怪的行为。

简单的场景是:控制器通过ID获取一个图像,并通过EF6从数据库加载它。byte[]结果包含文件名、contentType和byte[]形式的数据。我有一个可能+100的小图片库,它通过标准img标记指向控制器,如下所示:

代码语言:javascript
复制
<img src="//path/to/webapicontroller/1" />

这是或多或少的完整代码:

代码语言:javascript
复制
public class BlobImageController : ApiController
{
    public async Task<HttpResponseMessage> Get(Guid id, [FromUri]int width, [FromUri]int height)
    {
        var service = new BlobService();

        // pull stuff via EF from database using async EF APIs
        var blobResult = await service.ReadAsync(id);

        string contentType = blobResult.ContentType;

        var fileExtension = Path.GetExtension(blobResult.Filename);

        var result = new HttpResponseMessage(HttpStatusCode.OK);

        var stream = new MemoryStream(blobREsult.content);

        stream.Position = 0;
        result.Content = new StreamContent(stream);
        result.Content.Headers.ContentLength = stream.Length;

        result.Content.Headers.ContentType = new MediaTypeHeaderValue(contentType);
        return result;
    }
}

问题是:以前的同步控制器提供了很好的服务,但使用这个异步版本,浏览器只能下载前7-10个图像,所有其他请求都处于待决状态。在服务器端没有负载-它被卡住了。如果我使用另一种浏览器,它同样适用于前7个浏览器,并且我在服务器端只收到7个请求。

当我查看Chrome Dev工具时,未完成的请求都是未决的,而成功的请求是"OK“。

如果我使用ByteArrayContent,也会发生这种情况。这两个版本都可以很好地与同步版本配合使用。

我错过了什么?

EN

回答 1

Stack Overflow用户

发布于 2014-05-15 15:30:33

找到了:我还使用了Glimpse ASP.NET MVC包。当我从system.WebServer配置中删除Glimpse模块时,一切都会正常工作。

我用这个包做了测试:

代码语言:javascript
复制
 <package id="Glimpse" version="1.8.2" targetFramework="net45" />
 <package id="Glimpse.AspNet" version="1.8.0" targetFramework="net45" />
 <package id="Glimpse.Mvc5" version="1.5.3" targetFramework="net45" />

我在GitHub上打开了一个问题:https://github.com/Glimpse/Glimpse/issues/797

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23663202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档