Hello.
I've got a question about your ASPxUploadControl.
I want to use its advanced mode for working with big files. The only thing that troubles me is how it will work if my web-application is installed on a web-farm. I mean how it will save file packets in this case? If there are server cluster will ASPxUploadControl save all the packets of a file on the same server?
Please clarify how it will work.
Best regards, Maxim Egorov
ASPxUploadControl - Advanced Mode - support web farms, web gardens
Answers approved by DevExpress Support
Hello Maxim,
Thank you for your question about web farm (web garden) support.
Currently, we have no web farm support for the Upload control in Advanced mode.
I have converted the question in a suggestion. You may track it to be notified when it's implemented.
In addition, the information from UploadControl - upload progress does not work in .NET Framework 4, web farm support may be helpful.
The workaround for this problem with the client affinity feature is described in the following discussion:
http://stackoverflow.com/questions/866108/how-to-keep-user-requests-on-the-same-server-when-using-iis-nlb
In case of an enabled client affinity, all TCP connections are directed to the same cluster host, so our internal mechanism should then work as expected.
Updated:
Web farms and web gardens are supported starting with version 16.2
Thanks,
Vic.
Hi,
I'm happy to announce that we've implemented WebFarm/WebGarden support in version 16.2. It is already available in beta.
Regards,
Pavlo
Other Answers
Hi,
I have found a solution to this that seems to work in an Azure Cloud Service with multiple web instances but this should be easily adaptable to any web farm:
- Create a new storage account using the Azure File Service (preview atm)
- Create a share on the storage account using PowerShell called "UploadTemp"
- Write code in the Global.asax "Application_Start" method to create a new SMB share which maps the "Z:" drive to the new Azure File Service storage account (using a pinvoke to "WNetAddConnection2")
- Write code in the "Run" method of the WebRole to execute a powershell script which creates a new virtual directory in "App_Code" called "UploadTemp" and points to the mapped "Z:" drive
This has the effect of fooling the ASPxUploadControl into using my remote, shared drive for all instances of the website. This seems to allow advanced mode uploads to work correctly.
The only issue I have found so far is that my implementation of a custom progress bar is not receiving progress events while the file is uploading. The file does still upload successfully though. Allowing the control to use the built in progress bar does work and displays progress correctly.
Unfortunately this method has been tried and is still too unreliable - although it's more reliable than the control is on its own
How about using session state mode=stateServer in web.config?
Has anyone tried that yet?
Hello Maxim,
Thank you for contacting us. We need some additional time to review this scenario to provide you with a precise answer.
We appreciate your patience while we are working on finding a solution to your inquiry.
Regards,
Mike
P.S. It seems you are using an older build of our components (according to the report's Build field). Please visit our Version Info Page to learn about the most recent versions of our products and obtain instructions on how to update them. In addition, check the What’s New list to learn more about newly introduced features and issues we have already resolved in the most recent version.