I currently have an asp.net web application running on an xp machine w/ iis 5.1 and sql server 2005 on our network. This application processes large excel files (50MB+), handles 100's of 1000's of records of product information, and manipulates that data. Right now not many people can access the app and do anything substantial with out the system freezing.

I would like to be able to have ~10 people using the system at any given time doing these large tasks.

4 Answers
4

If cost is a main factor then OS and SQL versions will depend on licensing costs, which in turn depend on whether your organization has partner agreements / special deals from MS.

However, it is definitely worth looking at the overall system design before you go throwing money at it. Often 'freezes' can be fixed by changing locking / isolation schemes within the SQL database - if you have users trying to read from a table that is being updated with SQL's default locking, you will get blocked. (Look at READ UNCOMMITTED and NOLOCK hints but don't blindly rely on them)

Also look at PerfMon to see if disk I/O is causing your slowdowns (look up average disk queue length expected values) - and this will help to to see whether you need to concentrate on better disk arrays in your new machine (RAID 1, 5, 10 etc).

Actually the limit is 10. You are thinking about the WinInet limitation of 2 connections to the same host from a client perspective.

Move this to a Server 2003 or Server 2008 instance and unless the code was written poorly from a concurrency perspective you should be fine. If you are however accessing physical files, i.e. excel files, and not doing the proper locking, etc for concurrency management you still may be out of luck.

IIS 5.1 is actually your physical limitation. As others have said, Windows XP is not a server, so the built in webserver was not designed to handle more than 10 users connecting at one time.

Moving your application to a Windows Server 2003 or 2008 would give you a lot more potential for your application. If you're not looking for more than a few hundred connections in a day, then running both SQL server and the web server on the machine is okay. If you're looking for more, than a seperation of concerns would probably be a better way to go with this.