2010-03-19 4 views
5

J'essaie de télécharger de gros fichiers xml vers un service REST ... J'ai essayé presque toutes les méthodes spécifiées sur stackoverflow sur google mais je ne peux toujours pas savoir où je suis qui ne va pas .... Je ne peux pas télécharger un fichier supérieur à 64 kb ..upload grand XML au service WCF REST -> 400 Bad request

J'ai spécifié le maxRequestLength:

<httpRuntime maxRequestLength="65536"/> 

et ma config de liaison est la suivante:

<bindings> 
    <webHttpBinding> 
    <binding name="RESTBinding" maxBufferSize="67108864" maxReceivedMessageSize="67108864" openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00"> 
     <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" 
maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647"/> 
    </binding> 
    </webHttpBinding> 
</bindings> 

Dans mon côté C# client que je fais ce qui suit:

WebRequest request = HttpWebRequest.Create(@"http://localhost.:2381/RepositoryServices.svc/deviceprofile/AddDdxml"); 

     request.Credentials = new NetworkCredential("blah", "blah"); 
     request.Method = "POST"; 
     request.ContentType = "application/xml"; 
     request.ContentLength = byteArray.LongLength; 


     using (Stream postStream = request.GetRequestStream()) 
     { 
      postStream.Write(byteArray, 0, byteArray.Length); 
     } 

Il n'y a pas de configuration particulière fait du côté client ...

J'ai essayé Fiddler ... Le client envoie une demande appropriée .. .But le serveur répond immédiatement avec un 400 ..

+0

@marc_s: Je pensais la même chose, mais selon les docs « la taille maximale de la demande [est] en kilo-octets ». http://msdn.microsoft.com/en-us/library/system.web.configuration.httpruntimesection.maxrequestlength.aspx –

Répondre

0

Pour WCF SOAP tout ce que je devais faire était:

<binding name="uploadFilesBasicHttpBinding" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" maxBufferPoolSize="2147483647" receiveTimeout="00:10:10" sendTimeout="00:10:00" openTimeout="00:10:00" closeTimeout="00:10:00"> 
    <readerQuotas maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxDepth="2147483647" maxNameTableCharCount="2147483647" maxStringContentLength="2147483647"/> 
    <security mode="TransportWithMessageCredential"> 
     <message clientCredentialType="UserName"/> 
    </security> 
    </binding> 
Questions connexes