We are using RadAsyncUploadControl version Q3 2011, in our SharePoint 2007 application.
The issue is happening in a load balanced environment. Firefox 11 and Chrome 18 (doesn’t happen in IE and Safari) are splitting the request for one large into small packets and sending them as different requests (It is not our code. May be it’s the way Telerik works). Because of the load balancing these requests are going to multiple WFE servers. Since, we have the Temp folder as a local path these small packets are getting saved to multiple web front ends. So, finally when it gets copied to the Target folder it is copying only the last packet.
The solution to the problem is to have a Shared UNC Path for the Temp location. We tried changing the temp location to a UNC Path but it didn’t work as Impersonation was turned on in web.config for all our web applications. We turned off the impersonation and then tried uploading a large file from Firefox and it worked fine. We were able to upload a 12MB file successfully and the Size is displaying correctly on the Confirmation screen as well. But turning impersonation off may not the correct approach as it could impact the whole web application.
In order to work around this problem, we set the temp location to a Local Path on WFE and then in our Custom Http Handler 'AsyncUploadHandler' (runs under elevated privileges) we are resetting this to the Shared UNC Path before copying the file to the Temp Location. While this approach is working fine for IE and Safari, this is still an issue for Firefox 11 and Chrome 18. Firefox 11 and Chrome 18 are trying to the copy the file to the Temp Folder first and then pass the request to the Custom HttpHandler where as in IE the request comes directly to the Custom Http Handler and then upon our code execution the file is getting copied to the Temp Folder.
Query we have are:
1.) Why RadAsynUploadControl breaks files in smaller chunks for FF and Chrome only and not for IE and Safari? Is there a way to rectify without following the work around? Is there any speacial settings for RadAsynUploadControl to make it work under NLB environment?
2.) In work around mentioned above related to setting temp location, why custom http handler code gets executed first in case of FF and Chrome and not in case of IE and Safari?
If anyone has faced similar issue and have resolved it, please let me know.
Regards,
RK