Sounds like it is a case of permissions, the IIS server that is processing the ASP.NET pages does not have the privileges necessary to open the COM port.... as a matter of interest what are you using to communicate with the COM port?
The other clue is "Access to the port is denied" seems to suggest there is something else running. This implies that serial ports are exclusive access only, and only one process can access the serial port at any one time....
Edit:
After digging around, I think this link might be the best solution in the sense to get around the "Access denied on COM2", by using hooks and hook it in...I have not read the article but it looks like the one you are looking for...