I see a ton of questions about uploading multiple files, but none about uploading a single file to multiple servers, so here goes…
I have an ASP.NET app that will be running on two load balanced servers, and I would like to allow users to upload files and have them end up on both servers. What is the cleanest way to do this? I am using IIS 6 btw.
Some ideas that come to mind are:
1) Use a virtual directory that points to some shared location that both servers can access. Will there be any access issues if the application runs at Network Service? I’m assuming the application will need to run as a user account that exists on the shared location machine. How should the permissions be set for this?
2) It would be nice if I could via jQuery post the request to both of my servers, referencing them by their port numbers. Even though the servers are on the same domain, this violates the same origin policy, right?
Is there another solution I’m overlooking? How do other sites do this?
I think you want to consider this problem more carefully – having a pair (or more) of servers means that some of them will be offline some of the time (at least for occasional reboots).
Uploads when not all of the servers are online won’t be able to be sent to all servers immediately, so you’d need either an intermediate server (which would be a point of failure unless it was highly available itself) or a queuing system to “remember” which files were where, and to transfer them when the relevant servers were restored.
Also, you’ll want a backup system, and some way to add newly provisioned servers to your cluster. You will also want a way to monitor these files are the same in case they get out of sync. Your architecture needs a lot of careful thought. I don’t have the answers 🙂