Web-Api-Anfrage Wirft "Fehler beim kopieren der Inhalte in einem stream."

Ich versuche, dies umzusetzen code-Beispiel, aber eine HttpRequestException - "Fehler beim kopieren der Inhalte in einem stream." wenn die ReadAsStringAsync() - Methode aufgerufen wird. Die innere Ausnahme ist "Nicht auf einen entsorgt Objekt." Ich bin mit Fiddler die Anfrage zu machen. Ich verstehe es nicht. Kann jemand erklären, warum ich immer diese Ausnahme und bieten eine Lösung?

Web-Api-Methode:

public async Task<HttpResponseMessage> Post(HttpRequestMessage request)
{
    try
    {
        var jsonString = await request.Content.ReadAsStringAsync();
    }
    catch (Exception ex)
    {                
        throw;
    }
    return new HttpResponseMessage(HttpStatusCode.Created);
}

Fiddler (POST):

User-Agent: Fiddler
Host: localhost:23567
Content-Length: 18
Content-Type: application/json; charset=utf-8
Body{"Test":1}

Edit:

Ich habe eine Ahnung, aber müssen Verifikation. Auf der Web-Api-controller, ich habe eine ActionFilterAttribute und in seiner OnActionExecuting überschreiben, da gibt es diese Zeile:

public override async void OnActionExecuting(HttpActionContext actionContext)
{
    //omitted code
    actionContext.Request.Content.ReadAsStreamAsync();
}

Könnte es sein, dass da der Inhalt hier gelesen, es ist nicht wieder verfügbar? Wenn ja, wie kann ich in der Methode? Der Inhalt ist hier die gleiche wie die HttpRequestMessage? Diese enthalten kann, eine Antwort.

  • Wie rufst du diese Methode?
  • mit Fiddler
  • Ist diese Methode ein Web-API-Aktion?
  • es ist eine Methode, die auf einer Web-Api-controller
  • siehe mein edit, danke
InformationsquelleAutor Big Daddy | 2016-03-01
Schreibe einen Kommentar