To begin with, MySQL for windows is a port. I wouldnt have ever described it as being true “multi-platform” in that sense - and being a port means that some things will not work as well as the original development platform was intended, without tweaking form time to time. In this case the problem is that MySQL is using the windows Posix I/O interfaces, which are limited to 2048 open file handles…
A patch for source code is listed for this in June 2008 (http://lists.mysql.com/commits/47983), which uses the native w32 handles…
I highly doubt, however, that the changes will be implemented in the 5.x tree, as this is quite a core change, and is safer to implement in the 6.x tree (not yet released)
So you are left with a few options here.
Change your DB platform to Linux. 2 reasons. 1:- Linux will fix your problem. 2:- Its bad practice to run a db server on a server that does other stuff (a db server should only be a db server) I assume you are running IIS/ASP and connect to db server localhost? - Also a third thing. In my experience, Linux outshines windows for MySQL by a LONG way. Especially when using InnoDB. (O_DIRECT etc)
Identify why your db needs so many open files. How many tables/partitions do you have?
See if you can find a source code patch for the 5.x tree or get someone to make one (make some noise in various forums where mysql devs are present). Someone may be willing to make a custom build of latest MySQL 5.0.x and 5.1.x that addresses this problem. I see alot of people on the net are having the same issue.