2013-07-09 17 views
5

bulunamadı:derleme olamaz Request.Content.IsMimeMultipartContent() Aşağıdaki kod var

public class UploadController : ApiController 
{ 
    DBRepository _repository = new DBRepository(); 


    public Task<IEnumerable<FileDesc>> Post() 
    { 
     string folderName = "UploadedFiles"; 
     string PATH = HttpContext.Current.Server.MapPath("~/" + folderName); 
     PATH = @"c:\www\qqq"; 
     string rootUrl = Request.RequestUri.AbsoluteUri.Replace(Request.RequestUri.AbsolutePath, String.Empty); 


     if (Request.Content.IsMimeMultipartContent()) 
     { 
      var streamProvider = new CustomMultipartFormDataStreamProvider(PATH); 

      var task = Request.Content.ReadAsMultipartAsync(streamProvider).ContinueWith<IEnumerable<FileDesc>>(t => 
      { 

       if (t.IsFaulted || t.IsCanceled) 
       { 
        throw new HttpResponseException(HttpStatusCode.InternalServerError); 
       } 


       return fileInfo; 
      }); 

      return task; 
     } 
     else 
     { 
      throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotAcceptable, "This request is not properly formatted")); 
     } 

    } 
} 

ama hataları var:

Hata 16 'System.Net.Http. HttpContent IsMimeMultipartContent 've uzatma yönteminin 'IsMimeMultipartContent System.Net.Http.HttpContent '' türü bir ilk argüman kabul'' tanımını içermiyor' bulunamadı (bir kullanarak yönergesi veya bir montaj eksik yeniden fark olmamas?)

Hata 17 'System.Net.Http.HttpContent 'ReadAsMultipartAsync' ve tip 'System.Net.Http bir birinci argüman kabul uzatma yöntemi 'ReadAsMultipartAsync' için bir tanım içermez. HttpContent 'bulunamadı (bir kullanarak yönergesi veya bir derleme başvurusu eksik?)

Hata 18 'System.Net.Http.HttpRequestMessage CreateResponse 've hiçbir uzantı yöntemi '' için tanımını içermiyor' CreateResponse ' ' System.Net.Http.HttpRequestMessage 'türünde bir ilk argümanı kabul ediyor olabilirsiniz. direktif veya bir montaj referansı kullanarak bir söyle?)

neden? Ben bir montaj System.Net.Http.Formatting.dll proje ve sayfa http://msdn.microsoft.com/ru-ru/library/hh834190(v=vs.108).aspx üzerinde

using System.Net.Http.Formatting; 

dikkatle söyledi var, bu ext olduğunu ekledi. yöntemi System.Net.Http.Formatting içinde (System.Net.Http.Formatting.dll) içinde 4.0 ve 4.5 altında bir proje derlemeye çalıştım - hiçbir etkisi.

PS. Mükemmel bir şekilde çalışan aynı kod ile bir çözüm var. Ne yapabilirim? "System.Net.Http kullanarak;"

:

+1

. Bir kullanma ifadesini kaçırıyor musunuz? –

+0

Teşekkürler! Gerçekten aptalca hata, iki kez kontrol ettim, ama her yerde kaybettim ... –

cevap

8

aşağıdaki başvuru ekleyin

{} adlı kullanıcının bağlanmak MSDN sayfa `System.Net.Http` ad bunu gösterir

+0

Aynı sorunu yaşıyorum ama bu referansı ekledim ve bu çizgiyi üstüne ekledim. Ama "multipart" ile ilgili her şey bulunamıyor. Kaçırdığım başka bir şey var mı? –

+0

'update-package' komutunu @ Package Manager Konsolu'nu girmeyi deneyin. –