Reputation: 988
I am uploading documents in my local drive after encrypting them and i have max uploading limit in web.config as
<httpRuntime maxRequestLength="2147483647" executionTimeout="1000"/>
when document size is greator then 20mb following exception is shown
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception
Stack Trace:
[OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.]
System.IO.MemoryStream.set_Capacity(Int32 value) +93
System.IO.MemoryStream.EnsureCapacity(Int32 value) +50
System.IO.MemoryStream.WriteByte(Byte value) +130
System.IO.BinaryWriter.Write(Byte value) +20
System.Web.UI.SerializerBinaryWriter.WriteEncoded(Int32 value) +62
System.Web.UI.ObjectStateFormatter.SerializeValue(SerializerBinaryWriter writer, Object value) +2081
[ArgumentException: Error serializing value '644314' of type 'System.Int32.']
System.Web.UI.ObjectStateFormatter.SerializeValue(SerializerBinaryWriter writer, Object value) +3371
System.Web.UI.ObjectStateFormatter.Serialize(Stream outputStream, Object stateGraph) +141
System.Web.UI.ObjectStateFormatter.Serialize(Object stateGraph) +57
System.Web.UI.ObjectStateFormatter.System.Web.UI.IStateFormatter.Serialize(Object state) +4
System.Web.UI.Util.SerializeWithAssert(IStateFormatter formatter, Object stateGraph) +37
System.Web.UI.HiddenFieldPageStatePersister.Save() +79
System.Web.UI.Page.SavePageStateToPersistenceMedium(Object state) +108
System.Web.UI.Page.SaveAllState() +315
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2839
What would be the reason for this exception and how to solve this..
Upvotes: 1
Views: 4912
Reputation: 21485
You should not store the file in ViewState. It will have very bad impact on performance (since it will transmitted twice for each subsequent request.
You need to store the file in a temporary folder and then store the file path in ViewState instead. Just remember that you need some sort of cleanup routine that deletes files that are (for example) a day old.
Upvotes: 3