If you can't find the issue you can always go with a work-around.  I'm
assuming this is some sort of file upload?  If so, initiate a transfer
from the client with the file size and return a file token.  Then send
chunks to the server filling up a buffer keyed to that file token.  It
shouldn't be too much effort to do so.  If you have to support legacy
clients then just simply add a new upload method that only your iOS
clients will use.

-Abe

On Thu, Jul 7, 2011 at 10:49 AM, Mark  Handzlik
<[email protected]> wrote:
> Thanks for reply Jason,
> WCF binding not in play to my knowledge as this is a pure POST. I can get
> large sizes of data down from server but a send error 14's on anything > 64K
> Shared App pool is where this site is pointed, .net 3.5 sp1 installed and
> IIS7
> From: Jason Awbrey <[email protected]>
> Date: Thu, 7 Jul 2011 10:39:53 -0400
> To: Mark Handzlik <[email protected]>
> Cc: "[email protected]" <[email protected]>
> Subject: Re: [MonoTouch] Anyone have a hint on HttpWebRequest and 64K limit?
>
> Have you checked the MaxReceivedMessageSize setting on your WCF binding?
> What versions of IIS and .NET are you running on the server?
>
> On Thu, Jul 7, 2011 at 9:03 AM, Mark Handzlik <[email protected]>
> wrote:
>>
>> Have an issue with send requests from Ipads that work fine when we send
>> under 64K size. When request goes over 64K we receive Error 400 from server.
>> Tried all types of settings on server in web.config section
>> maxRequestLength="2097151"
>>  requestLengthDiskThreshold="400000"
>> Registry settings for
>> MaxRequestBytes and MaxFieldLength.
>> Still Error 400
>> Would really appreciate this as users can now have to be careful to sync
>> data often and small to have operational apps.
>> Below is the MT code section for client send:
>>             webRequest =
>> (HttpWebRequest)WebRequest.Create(requestUri.ToString());
>> if (this._credentials != null)
>>             {
>>                 webRequest.Credentials = this._credentials;
>>             }
>>             // Set the method type
>>             webRequest.Method = "POST";
>>             webRequest.Accept = "application/atom+xml";
>>             webRequest.ContentType = "application/atom+xml";
>>             webRequest.Timeout = 1200000;
>> switch (request.RequestType)
>>             {
>>                 case CacheRequestType.UploadChanges:
>> return ProcessUploadRequest(webRequest, request);
>> case CacheRequestType.DownloadChanges:
>>                 default:
>>                     return ProcessDownloadRequest(webRequest, request);
>>             }
>>         }
>>         private object ProcessUploadRequest(HttpWebRequest webRequest,
>> CacheRequest request)
>>         {
>>             using (Stream memoryStream = new MemoryStream())
>>             {
>>                 // Create a SyncWriter to write the contents
>>                 this._syncWriter = new ODataAtomWriter(base.BaseUri);
>>                 this._syncWriter.StartFeed(true, request.KnowledgeBlob ??
>> new byte[0]);
>>                 foreach (IOfflineEntity entity in request.Changes)
>>                 {
>>                     // Skip tombstones that dont have a ID element.
>>                     if (entity.ServiceMetadata.IsTombstone &&
>> string.IsNullOrEmpty(entity.ServiceMetadata.Id))
>>                     {
>>                         continue;
>>                     }
>>                     string tempId = null;
>>                     // Check to see if this is an insert. i.e
>> ServiceMetadata.Id is null or empty
>>                     if (string.IsNullOrEmpty(entity.ServiceMetadata.Id))
>>                     {
>>                         if (TempIdToEntityMapping == null)
>>                         {
>>                             TempIdToEntityMapping = new Dictionary<string,
>> IOfflineEntity>();
>>                         }
>>                         tempId = Guid.NewGuid().ToString();
>>                         TempIdToEntityMapping.Add(tempId, entity);
>>                     }
>>                     this._syncWriter.AddItem(entity, tempId);
>>                 }
>>
>>  this._syncWriter.WriteFeed(XmlWriter.Create(memoryStream));
>>                 memoryStream.Flush();
>>                 // Set the content length
>>                 webRequest.ContentLength = memoryStream.Position;
>>                 using (Stream requestStream =
>> webRequest.GetRequestStream())
>>                 {
>>                     CopyStreamContent(memoryStream, requestStream);
>>                     // Close the request stream
>>                     requestStream.Flush();
>>                     requestStream.Close();
>>                 }
>>             }
>>             // Fire the Before request handler
>>             this.FirePreRequestHandler(webRequest);
>>             // Get the response
>>
>>             HttpWebResponse webResponse =
>> (HttpWebResponse)webRequest.GetResponse();
>> ________________________________
>> The information contained in or attached to this electronic transmission
>> constitutes confidential information and may be privileged and exempt from
>> disclosure under applicable law. If you are not the intended recipient, you
>> are on notice that any unauthorized disclosure, copying, distribution or
>> dissemination of this information is strictly prohibited.
>>
>> _______________________________________________
>> MonoTouch mailing list
>> [email protected]
>> http://lists.ximian.com/mailman/listinfo/monotouch
>>
>
>
> ________________________________
> The information contained in or attached to this electronic transmission
> constitutes confidential information and may be privileged and exempt from
> disclosure under applicable law. If you are not the intended recipient, you
> are on notice that any unauthorized disclosure, copying, distribution or
> dissemination of this information is strictly prohibited.
>
> _______________________________________________
> MonoTouch mailing list
> [email protected]
> http://lists.ximian.com/mailman/listinfo/monotouch
>
>
_______________________________________________
MonoTouch mailing list
[email protected]
http://lists.ximian.com/mailman/listinfo/monotouch

Reply via email to