Part of the answer may depend on whether your wanting performance or memory profiling. There is a performance profiler in SharpDevelop, but it doesn't support ASP.Net (at least not last time I checked).
For Memory Profiling, the only free profiler I know of is the CLR Memory Profiler. Its been a while since I've used it, but I'm fairly sure it supports ASP.Net without issues.
dotTrace from Jetbrains is hands down the best profiler I've used. It's easy to use and easy to interpret the results. The biggest down side is the price.
Redgate has the Ants Profiler for both memory and performance. It's been around for a long time, but I personally find it harder to use than the Jetbrains profiler. Once again the price for these products are not insignificant.
If all your interested in is memory profiling, then the SciTech profiler is really nice. It has some very nice features (like unmanaged memory usage tracking), and the price is much more approachable than both the Redgate and Jetbrains products.
All of these work fine with ASP.Net, so no worries there. They also have some limited trial period that you can use them without paying, but it is typically something like 14 days.