2010-03-19 34 views
5

Tôi đang cố gắng tải lên tệp xml lớn lên dịch vụ REST ... Tôi đã thử gần như tất cả các phương thức được chỉ định trên stackoverflow trên google nhưng tôi vẫn không thể tìm ra nơi tôi đang đi sai .... tôi không thể tải lên một tập tin lớn hơn 64 kb ..tải lên xml lớn lên dịch vụ REST WCF -> 400 Yêu cầu không hợp lệ

tôi đã xác định các maxRequestLength:

<httpRuntime maxRequestLength="65536"/> 

và cấu hình ràng buộc của tôi là như sau:

<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> 

Trong C# phía khách hàng của tôi, tôi đang làm như sau:

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); 
     } 

Không có cấu hình đặc biệt được thực hiện trên các mặt hàng ...

Tôi đã thử cáy ... Các khách hàng đang gửi một yêu cầu hợp lý .. .Nhưng máy chủ phản hồi ngay lập tức với 400 ..

+0

@marc_s: Tôi đã suy nghĩ giống nhau, nhưng theo các tài liệu "theo yêu cầu kích thước tối đa [là] bằng kilobyte". http://msdn.microsoft.com/en-us/library/system.web.configuration.httpruntimesection.maxrequestlength.aspx –

Trả lời

0

Đối với WCF SOAP tất cả tôi phải làm là:

<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> 
Các vấn đề liên quan