Hello,
I am running into the famous 4MB file restriction on a Web Service that I've
built using DotNET and WSE 2.0. I've read all the documentation on the issue.
I'm aware that I must modify the following config files to bump the file size
restriction up.
1. Machine.config on server
<httpRuntime
executionTimeout="90"
maxRequestLength="32768"
useFullyQualifiedRedirectUrl="false"
minFreeThreads="8"
minLocalRequestFreeThreads="4"
appRequestQueueLimit="100"
enableVersionHeader="true"
/>
2. Web.config on server
<microsoft.web.services2>
<messaging>
<maxRequestLength>32768</maxRequestLength>
</messaging>
<diagnostics/>
</microsoft.web.services2>
My problem is that I've made these changes and I am still not able to
retrieve documents greater than 4MB. When I attempt to do so, I get the
following error:
Error:
WSE352: The size of the record ApsAuth,Test9MB__tiff exceed its limit.
at Microsoft.Web.Services2.Dime.DimeRecord.UpdateTotalBytesRead(Int32
bytesRead)
at Microsoft.Web.Services2.Dime.DimeRecord.ReadHeader()
at Microsoft.Web.Services2.Dime.DimeRecord..ctor(Stream stream, Int32
maxRecordLength)
at Microsoft.Web.Services2.Dime.DimeReader.ReadRecord()
at Microsoft.Web.Services2.Dime.DimeAttachmentCollection..ctor(DimeReader
reader)
[snip]
My server is running Windows 2000 SP4, IIS 5.0 and WSE 2.0 SP2. Since the
error seems to be coming out of WSE itself, I'm really at a loss for what
could be wrong. I've read the notes on WSE 2.0 SP3 and it doesn't mention
fixing a bug in this setting. So that seems like a wild goose chase. I'm
about out of ideas. I could use some brainstorming help.
Thanks,
Michael
Julie Lerman - 02 Jul 2005 01:49 GMT
Michael-
There's been a lot of the 4MB tiff problem going around lately I think!! (I
just was involved in a similar thread on a different list)
First check this KB article - ASP.NET has issues with files>4MB.
http://support.microsoft.com/default.aspx?scid=kb;EN-US;821387
(That isn't a solution - just to show you what the problem is)
So the solution is that you need to stream this down in chunks.
there was a post in May where Hervey Wilson (on the wse team) said that he
was going to code up a sample, but I can't find that and I haven't done this
yet myself. However here is the text of his message:
"Fundamentally, the attachments model isn't designed for moving very large
files around. The best way to do this with SOAP is to use an application
level file-transfer model. Essentially, you'd chunk up the files yourself
and send multiple messages each containing a single chunk and then rebuild
the file at the receiver. We're working on some sample code to illustrate a
mechanism for doing this. "
And here is a pointer to an article with an example of doing the chunking
and merging in a web service.
http://www.thecodeproject.com/cs/webservices/SplitMergeWebService.asp
Hope this helps you put together a solution.
Be aware that the new WSE 3.0 replaces DIME with MTOM - and you will be able
to return very large files (without even having to make them attachments)
with your web services efficiently as binary data.
Julie
> Hello,
>
[quoted text clipped - 55 lines]
>
> Michael