【发布时间】:2014-11-01 17:58:41
【问题描述】:
我在我的虚拟机中托管了一个 WebAPI(使用最新版本)(具有 .net 框架 4.5.2、Windows Server 2012 R2 以及所有更新)。
WebAPI 代码从我的博客(外部公共 URL)返回 RSS 提要。
这是相同的代码。
我正在使用this 来缓存 WebAPI 输出。
[AllowAnonymous]
[CacheOutput(ServerTimeSpan = 9000, ExcludeQueryStringFromCacheKey = false)]
[HttpGet]
public async Task<HttpResponseMessage> GetRecentPost(string type)
{
string responseFromServer;
WebRequest request = null;
request = WebRequest.Create("My_EXTERNAL_BLOG_URL_HERE");
using (var response = await request.GetResponseAsync())
{
using (var dataStream = response.GetResponseStream())
{
using (var reader = new StreamReader(dataStream))
{
responseFromServer = await reader.ReadToEndAsync();
}
}
}
return new HttpResponseMessage() { Content = new StringContent(responseFromServer, Encoding.UTF8, ContentType) };
}
我可以从 IIS 中看到,很少有请求会停留很长时间。
可能是什么原因? 其次,我发现该应用每分钟处理大约 300 个请求。在上面的代码中使用 async-await 是一个好习惯吗?
【问题讨论】:
标签: c# iis asp.net-web-api async-await