Over the past few weeks we’ve been trying to sort out the IIS support in ANTS Profiler to make it more reliable, and to deal with some of the scenarios it didn’t handle, or didn’t handle well.
The result of all this work, mainly done by our new developer, Alex, has been incorporated into ANTS Profiler 4.3 which, at the moment, is only available as an early access build, but if you’ve run into a brick wall trying to profile an ASP.NET application, or a web service, running in IIS, I’d highly recommend you give it a whirl. You can get it from:
You’ll quickly notice a few changes:
- You no longer have to select your IIS or .NET framework versions; this is all done automatically, and the appropriate settings are displayed.
- It’s now possible to specify an ASP.NET username and password for IIS 6 and 7; this wasn’t previously supported and could cause problems if you wanted to login to, e.g., SQL Server using as a particular user using integrated security.
- If for any reason ANTS Profiler can’t decide which version of IIS you’re running, or can’t detect it, it will give you a hopefully helpful error message explaining why the problem occurred, and telling you what, if anything, you can do about it.
Obviously, being an early access build, all the usual disclaimers apply, including that it might be less stable or usable than the previously released version, and if it runs amok and strangles your cat I will, of course, deny all responsibility. I’ve no reason to assume that anything really bad will happen, although there are some fairly minor known issues:
- The changes are currently only available in the performance profiler; when we release the new version of the memory profiler it will receive the upgraded IIS support (the first early access build should be available within weeks though, so you don’t have to wait that long if you’re really eager to get your hands on it).
- Most of the help anchors in the setup dialog (green question marks) seem to have become dissociated from their content in this build; we’ll fix this in a later build, but it shouldn’t stop you using it.
- You’ll probably still run into problems if you’re trying to profile a .NET 1.1 application running on IIS 7. We’re going to continue looking into this, although at the moment it falls into the category of sometimes it works, sometimes it doesn’t, and we’re not sure why. It used to work because we’d force it to .NET 2.0, but this caused problems for some people, so now we don’t do that but it doesn’t yet work reliably. If you can I’d suggest manually configuring your application to run under .NET 2.0.
- In IIS 6 and 7, if you want to specify a username and password, you’ll need to make sure that user is an administrator. This happens because normally IIS would open up a port and so on, however in order to avoid having to restart IIS we just kick off another worker process which needs to open its own port; if the user we run this process as does not have sufficient privileges opening this port will fail, and so you won’t be able to profile your application.
So, maybe calling this an end to IIS profiling woes is a little bit premature, but you should find profiling web applications to be a much better experience.