Demande.Contenu.ReadAsMultipartAsync ne retourne jamais

J'ai une API pour un système écrite à l'aide de la ASP.NET l'Api Web et suis en train de l'étendre à des images permettent d'être téléchargé. J'ai fait quelques recherches sur google et trouvé comment la méthode recommandée pour accepter les fichiers à l'aide de MultpartMemoryStreamProvider et certaines méthodes asynchrones mais mon attendent sur le ReadAsMultipartAsync ne retourne jamais.

Voici le code:

[HttpPost]
public async Task<HttpResponseMessage> LowResImage(int id)
{
    if (!Request.Content.IsMimeMultipartContent())
    {
        throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
    }

    var provider = new MultipartMemoryStreamProvider();

    try
    {
        await Request.Content.ReadAsMultipartAsync(provider);

        foreach (var item in provider.Contents)
        {
            if (item.Headers.ContentDisposition.FileName != null)
            {

            }
        }

        return Request.CreateResponse(HttpStatusCode.OK);
    }
    catch (System.Exception e)
    {
        return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e);
    }
}

Je peux étape à travers tout le chemin à l':

await Request.Content.ReadAsMultipartAsync(provider);

à quel point il ne sera jamais complète.

Quelle est la raison de mon attendent ne revient jamais?

Mise à jour

J'essaie de POSTER à cette action à l'aide de curl, la commande est la suivante:

C:\cURL>curl -i -F filedata=@C:\LowResExample.jpg http://localhost:8000/Api/Photos/89/LowResImage

J'ai aussi essayé d'utiliser le code html suivant à la POSTE à l'action et la même chose se produit:

<form method="POST" action="http://localhost:8000/Api/Photos/89/LowResImage" enctype="multipart/form-data">
    <input type="file" name="fileupload"/>
    <input type="submit" name="submit"/>
</form>
  • Comment est-ce que votre code client ressembler?
  • Pourriez-vous partager comment votre comment demander brute ressemble?
  • Placer un point d'arrêt dans le code après le await ainsi. Parfois, il ne rompt pas/étape à la ligne suivante lorsque vous utilisez async/await (de mon expérience)
  • hmm...j'ai essayé avec le même code et le code html ci-dessus, mais je ne vois pas le problème que vous êtes en mentionnant...
  • Je suis de la asp.net l'api web de l'équipe. Je serais intéressé pour déboguer plus si vous pouvez m'envoyer votre repro projet. Mon e-mail: [email protected]
InformationsquelleAutor Jon Cahill | 2013-03-04