【发布时间】:2017-05-07 19:09:42
【问题描述】:
我正在尝试在我的 Webapi 中输出缓存。根据https://github.com/filipw/Strathweb.CacheOutput 下方文章中的讨论,我已经安装了 Nuget 包“Strathweb.CacheOutput.WebApi2”。安装后我使用:
[CacheOutput(ClientTimeSpan = 100, ServerTimeSpan = 100, AnonymousOnly = true)]
public HttpResponseMessage Get()
{
var list = context.Colors.ToList();
return Request.CreateResponse(HttpStatusCode.OK,list.AsQueryable<Color>() );
}
它返回此错误:
{"Message":"发生错误。","ExceptionMessage":"查询不能应用于'System.Net.Http.ByteArrayContent'类型的响应内容。响应内容必须是ObjectContent。 \r\n参数名称:在 System.Web.Http.OData.EnableQueryAttribute.OnActionExecuted(HttpActionExecutedContext actionExecutedContext) 处的 actionExecutedContext","ExceptionType":"System.ArgumentException","StackTrace":"\r\n 在 System.Web.Http .Filters.ActionFilterAttribute.OnActionExecutedAsync(HttpActionExecutedContext actionExecutedContext, CancellationToken cancelToken)\r\n--- 堆栈跟踪从先前引发异常的位置结束 ---\r\n 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task任务)\r\n 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)\r\n 在 System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext()\r\n--- 堆栈结束从先前引发异常的位置跟踪 ---\r\n 在 System.Ru ntime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)\r\n 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)\r\n 在 System.Web.Http.Filters.ActionFilterAttribute.d__0.MoveNext()\ r\n--- 从先前引发异常的位置结束堆栈跟踪 ---\r\n 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)\r\n 在 System.Runtime.CompilerServices.TaskAwaiter .HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext()\r\n--- 从先前引发异常的位置结束堆栈跟踪 ---\r\ n 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)\r\n 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)\r\n 在 System.Web.Http.Controllers.AuthenticationFilterResult.d__0。 MoveNext()\r\n--- 从先前引发异常的位置结束堆栈跟踪 ---\r\n 在 Sys tem.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)\r\n 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)\r\n 在 System.Web.Http.Dispatcher.HttpControllerDispatcher.d__1.MoveNext( )"}
我可以做些什么来解决这个问题。我是 Web Api 的新手。谢谢
【问题讨论】:
标签: c# asp.net-web-api odata response httpresponse