A
AY
Hello,
We use a third party reporting system (Actuate) which provides soap services
via WSDL.
My web application was initially built in Visual Studio 2003 using .NET 1.1.
I was able to download huge files, i.e., over 100MB with no problems.
Actuate also has a utility (c# win app) that has no issues with a .net 1.1
version.
Our dev house has upgraded to VS2005 and we have recompiled everything which
is now under .NET 2.0. Now my web app may be able to download a file over
100MB once and then report a System.OutOfMemoryException. This also occurs
in my DLLs and the Actuate utility that were all compiled with VS2005.
Is there a bug in the .NET Framework 2.0 somewhere in the memory allocation
or stream allocation process? The exception thread below shows at what
point the process is dying. Is there anyone that has any ideas around this?
Thanks in advance.
Again, none of the code has been changed, we just recompiled in vs2005 and
now are under .net 2.0 rather than 1.1. That's the only change.
*****************************************************
at System.String.GetStringForStringBuilder(String value, Int32
startIndex, Int32 length, Int32 capacity)
at System.Text.StringBuilder.set_Capacity(Int32 value)
at System.Xml.BufferBuilder.ToString()
at System.Xml.XmlTextReaderImpl.ParseText()
at System.Xml.XmlTextReaderImpl.ParseElementContent()
at System.Xml.XmlTextReaderImpl.Read()
at System.Xml.XmlTextReader.Read()
at System.Xml.XmlTextReaderImpl.InitReadElementContentAsBinary()
at System.Xml.XmlTextReaderImpl.ReadElementContentAsBase64(Byte[] buffer,
Int32 index, Int32 count)
at System.Xml.XmlTextReader.ReadElementContentAsBase64(Byte[] buffer,
Int32 index, Int32 count)
at System.Xml.Serialization.XmlSerializationReader.ReadByteArray(Boolean
isBase64)
at
System.Xml.Serialization.XmlSerializationReader.ToByteArrayBase64(Boolean
isNull)
at
Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderActuateAPI.Read14_Attachment(Boolean
isNullable, Boolean checkType)
at
Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderActuateAPI.Read167_DownloadFileResponse(Boolean
isNullable, Boolean checkType)
at
Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderActuateAPI.Read517_downloadFileResponse()
at
Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer165.Deserialize(XmlSerializationReader
reader)
at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader
xmlReader, String encodingStyle, XmlDeserializationEvents events)
at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader
xmlReader, String encodingStyle)
at
System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage
message, WebResponse response, Stream responseStream, Boolean asyncCall)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String
methodName, Object[] parameters)
at ActuateAPI.downloadFile(DownloadFile DownloadFile1)
at CAcApi.DownloadFile(String sFileName)
We use a third party reporting system (Actuate) which provides soap services
via WSDL.
My web application was initially built in Visual Studio 2003 using .NET 1.1.
I was able to download huge files, i.e., over 100MB with no problems.
Actuate also has a utility (c# win app) that has no issues with a .net 1.1
version.
Our dev house has upgraded to VS2005 and we have recompiled everything which
is now under .NET 2.0. Now my web app may be able to download a file over
100MB once and then report a System.OutOfMemoryException. This also occurs
in my DLLs and the Actuate utility that were all compiled with VS2005.
Is there a bug in the .NET Framework 2.0 somewhere in the memory allocation
or stream allocation process? The exception thread below shows at what
point the process is dying. Is there anyone that has any ideas around this?
Thanks in advance.
Again, none of the code has been changed, we just recompiled in vs2005 and
now are under .net 2.0 rather than 1.1. That's the only change.
*****************************************************
at System.String.GetStringForStringBuilder(String value, Int32
startIndex, Int32 length, Int32 capacity)
at System.Text.StringBuilder.set_Capacity(Int32 value)
at System.Xml.BufferBuilder.ToString()
at System.Xml.XmlTextReaderImpl.ParseText()
at System.Xml.XmlTextReaderImpl.ParseElementContent()
at System.Xml.XmlTextReaderImpl.Read()
at System.Xml.XmlTextReader.Read()
at System.Xml.XmlTextReaderImpl.InitReadElementContentAsBinary()
at System.Xml.XmlTextReaderImpl.ReadElementContentAsBase64(Byte[] buffer,
Int32 index, Int32 count)
at System.Xml.XmlTextReader.ReadElementContentAsBase64(Byte[] buffer,
Int32 index, Int32 count)
at System.Xml.Serialization.XmlSerializationReader.ReadByteArray(Boolean
isBase64)
at
System.Xml.Serialization.XmlSerializationReader.ToByteArrayBase64(Boolean
isNull)
at
Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderActuateAPI.Read14_Attachment(Boolean
isNullable, Boolean checkType)
at
Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderActuateAPI.Read167_DownloadFileResponse(Boolean
isNullable, Boolean checkType)
at
Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderActuateAPI.Read517_downloadFileResponse()
at
Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer165.Deserialize(XmlSerializationReader
reader)
at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader
xmlReader, String encodingStyle, XmlDeserializationEvents events)
at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader
xmlReader, String encodingStyle)
at
System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage
message, WebResponse response, Stream responseStream, Boolean asyncCall)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String
methodName, Object[] parameters)
at ActuateAPI.downloadFile(DownloadFile DownloadFile1)
at CAcApi.DownloadFile(String sFileName)