Invalid character in Base-64 string

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Invalid character in Base-64 string

Jeremy
Hi,

We are seeing intermittent exceptions during upload with this error message.  We see exactly the same stack trace as the person in this other post:

http://www.brettle.com/ForumThreadView.aspx?thread=883&pageindex=0
(I would have added to that post, except it doesn't seem possible to add further comments.)

Any ideas?  I was wondering if this was related to the IE8 "4k" bug where the browser can randomly corrupt data but we are seeing this happen across a variety of browsers.

The full stack trace we see (same as the other post) is:
Exception information:
    Exception type: System.FormatException
    Exception message: Invalid character in a Base-64 string.
    Stack trace:    at System.Convert.FromBase64String(String s)
   at Brettle.Web.NeatUpload.ObjectProtector.Unprotect(String secureString, Byte[] encryptionKey, Byte[] unused, String encryptionAlgorithm, String validationAlgorithm, Deserializer deserializer, SignatureChecker sigChecker) in C:\p4\AppUpload\Libs\ThirdParty\NeatUpload-1.3.18\dotnet\src\Brettle.Web.NeatUpload\Brettle.Web.NeatUpload\ObjectProtector.cs:line 240
   at Brettle.Web.NeatUpload.ObjectProtector.Unprotect(String secureString, Byte[] encryptionKey, Byte[] validationKey, String encryptionAlgorithm, String validationAlgorithm) in C:\p4\AppUpload\Libs\ThirdParty\NeatUpload-1.3.18\dotnet\src\Brettle.Web.NeatUpload\Brettle.Web.NeatUpload\ObjectProtector.cs:line 134
   at Brettle.Web.NeatUpload.SimpleWebRemoting.MakeRemoteCall(Uri uri, HttpCookieCollection httpCookies, Byte[] encryptionKey, Byte[] validationKey, String encryptionAlgorithm, String validationAlgorithm, Object[] methodCall) in C:\p4\AppUpload\Libs\ThirdParty\NeatUpload-1.3.18\dotnet\src\Brettle.Web.NeatUpload\Brettle.Web.NeatUpload\SimpleWebRemoting.cs:line 115
   at Brettle.Web.NeatUpload.SimpleWebRemoting.MakeRemoteCall(Uri uri, Object[] methodCall) in C:\p4\AppUpload\Libs\ThirdParty\NeatUpload-1.3.18\dotnet\src\Brettle.Web.NeatUpload\Brettle.Web.NeatUpload\SimpleWebRemoting.cs:line 60
   at Brettle.Web.NeatUpload.SessionBasedUploadStateStoreProvider.MakeRemoteCall(Object[] methodCall) in C:\p4\AppUpload\Libs\ThirdParty\NeatUpload-1.3.18\dotnet\src\Brettle.Web.NeatUpload\Brettle.Web.NeatUpload\SessionBasedUploadStateStoreProvider.cs:line 100
   at Brettle.Web.NeatUpload.SessionBasedUploadStateStoreProvider.Load(String postBackID) in C:\p4\AppUpload\Libs\ThirdParty\NeatUpload-1.3.18\dotnet\src\Brettle.Web.NeatUpload\Brettle.Web.NeatUpload\SessionBasedUploadStateStoreProvider.cs:line 64
   at Brettle.Web.NeatUpload.AdaptiveUploadStateStoreProvider.Load(String postBackID) in C:\p4\AppUpload\Libs\ThirdParty\NeatUpload-1.3.18\dotnet\src\Brettle.Web.NeatUpload\Brettle.Web.NeatUpload\AdaptiveUploadStateStoreProvider.cs:line 75
   at Brettle.Web.NeatUpload.UploadStateStore.OpenReadWrite(String postBackID) in C:\p4\AppUpload\Libs\ThirdParty\NeatUpload-1.3.18\dotnet\src\Brettle.Web.NeatUpload\Brettle.Web.NeatUpload\UploadStateStore.cs:line 73
   at Brettle.Web.NeatUpload.UploadStateStore.OpenReadWriteOrCreate(String postBackID) in C:\p4\AppUpload\Libs\ThirdParty\NeatUpload-1.3.18\dotnet\src\Brettle.Web.NeatUpload\Brettle.Web.NeatUpload\UploadStateStore.cs:line 103
   at Brettle.Web.NeatUpload.Internal.Module.FilteringWorkerRequest.ParseOrThrow() in C:\p4\AppUpload\Libs\ThirdParty\NeatUpload-1.3.18\dotnet\src\Brettle.Web.NeatUpload\Brettle.Web.NeatUpload.Internal.Module\FilteringWorkerRequest.cs:line 632
   at Brettle.Web.NeatUpload.Internal.Module.FilteringWorkerRequest.ParseMultipart() in C:\p4\AppUpload\Libs\ThirdParty\NeatUpload-1.3.18\dotnet\src\Brettle.Web.NeatUpload\Brettle.Web.NeatUpload.Internal.Module\FilteringWorkerRequest.cs:line 491
   at Brettle.Web.NeatUpload.Internal.Module.FilteringWorkerRequest.GetKnownRequestHeader(Int32 index) in C:\p4\AppUpload\Libs\ThirdParty\NeatUpload-1.3.18\dotnet\src\Brettle.Web.NeatUpload\Brettle.Web.NeatUpload.Internal.Module\FilteringWorkerRequest.cs:line 768
   at System.Web.HttpRequest.CombineAllHeaders(Boolean asRaw)
   at System.Web.HttpRequest.FillInServerVariablesCollection()
   at System.Web.HttpServerVarsCollection.Populate()
   at System.Web.HttpServerVarsCollection.Get(String name)
   at PowerClerk.Global.Application_BeginRequest(Object sender, EventArgs e) in C:\P4\PowerClerkRel\PowerClerk\Web\Global.asax.cs:line 150
   at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
Reply | Threaded
Open this post in threaded view
|

Re: Invalid character in Base-64 string

Dean Brettle
Administrator
What are the exact contents of the string that is being passed to  System.Convert.FromBase64String() on line 240 of NeatUpload-1.3.18\dotnet\src\Brettle.Web.NeatUpload\Brettle.Web.NeatUpload\ObjectProtector.cs?  I suspect it is an error message that is being returned when NeatUpload tries to make a web request to the server on which it is running.