【发布时间】:2016-03-01 13:41:24
【问题描述】:
我正在尝试实现这个code example,但得到一个HttpRequestException - “将内容复制到流时出错。”当调用ReadAsStringAsync() 方法时。内部异常是“无法访问已处置的对象。”我正在使用 Fiddler 提出请求。我不明白。有人可以解释为什么我会收到此异常并提供解决方案吗?
Web API 方法:
public async Task<HttpResponseMessage> Post(HttpRequestMessage request)
{
try
{
var jsonString = await request.Content.ReadAsStringAsync();
}
catch (Exception ex)
{
throw;
}
return new HttpResponseMessage(HttpStatusCode.Created);
}
提琴手(POST):
User-Agent: Fiddler
Host: localhost:23567
Content-Length: 18
Content-Type: application/json; charset=utf-8
Body{"Test":1}
编辑:
我有一个线索,但需要验证。在 Web Api 控制器上,我有一个 ActionFilterAttribute,在它的 OnActionExecuting 覆盖中,有这样一行:
public override async void OnActionExecuting(HttpActionContext actionContext)
{
// omitted code
actionContext.Request.Content.ReadAsStreamAsync();
}
会不会是因为在此处阅读了内容,所以它不再可用?如果是这样,我怎样才能使它在方法中可用?这里的Content和HttpRequestMessage一样吗? This 可能包含答案。
【问题讨论】:
-
你是怎么调用这个方法的?
-
@YuvalItzchakov...我正在使用 Fiddler
-
此方法是 Web API 操作吗?
-
@YuvalItzchakov...是的,它是 Web Api 控制器上的一种方法
-
@YuvalItzchakov...请看我的编辑,谢谢
标签: c# asp.net-web-api