Single Sign On with ADFS

I’ve been looking around trying to find a good description of the specifics of how single sign on works with an ADFS server.  This is the best I was able to figure out.



Problems serving .svc in IIS 8 on Windows 8

I recently had some problems running telerik Sitefinity on my dev machine.  When I clicked on the Pages menu, it would give me a popup telling me that IIS 8.0 returned a 404.

All the help online talked about reregistering the WCF stuff using Servicemodelreg.exe, but doing that seemed to screw stuff up even more.  Others also talked about using aspnet_regiis, but that doesn’t work in Windows 8.

Finally, I found this post that dealt with the exact issue.  Adding the WCF Services under Turn Windows features on or off worked perfectly.

Thanks to


The StackExchange Mini Profiler is a nice tool to help you see where your pages and queries are spending most of their time. 

It gives you a little jewel in your page that you can click on to see info like:



While setup is easy, I was going to build a way for it to be enabled/disabled on a per-session basis so that developers could tur n it off and on as needed.  So I decided to make it into a nuget package.

The nuget package is here:

and the source is hosted here:

Adding a reference to this from your web project will cause the StackExchange MiniProfiler to profile for all requests (by default), but only show them to you if you choose to enable it for your session.  To enable display of the values, you simply browse to ~/MiniProfiler/true (or false to turn it back off).

Because the MiniProfiler will cache up to 15 request profiling sessions, this means a developer can notice a page took a long time to load, and after it completes, browse to ~/MiniProfiler/true to see the profile session that contains the info for what caused the slow page processing on the earlier request.

If you don’t want the profiler to always be monitoring, you can disable it with

MiniProfilerHttpModule.AlwaysProfile = false;

in your application startup code.

By default, the application will also always profile local requests.  This can be disabled with:

MiniProfilerHttpModule.AlwaysProfileLocalRequests= false;

Background tasks in

Recently a site I was working on, needed to periodically pull down data from an external data source.  I could have put this logic at the start of some request operation but then there would be some user waiting longer for his response than needed.

I ended up using this technique to refresh the dataset at regular intervals without messing with the users experience.  For simple stuff, it beats writing a separate job to do this.

ASP.Net MiniProfiler

This is a pretty cool looking tool from the Stack Exchange people called MiniProfiler.

You just add some profiling info to your code like this:

using (profiler.Step("Doing complex stuff"))
    using (profiler.Step("Step A"))
    { // something more interesting here
    using (profiler.Step("Step B"))
    { // and here

and see the result live in the browser like this:

Mini Profiler rocks your world with stats right in your page

IIS6 HTTP Compression

Here are some great articles talking about properly enabling compression in IIS6.

I had made some of these changes in the past, but I noticed that they had since been overwritten or not persisted.  I believe with the changes to the metabase file it will help keep the compression working.

Bear Necessities Pediatric Cancer Foundation

Last year, I donated a weekend of my time to work with some other developers to create a new site for Bear Necessities Pediatric Cancer Foundation.

When we wrapped up work, the site was nearly completed, with a few ends to tie up, and of course, all the content needed to be entered and hosting setup and DNS ….. you get the idea.

So FF a many months and I was starting to think that the site would never go live.  Well it finally did.

It isn’t the most beautiful site (we didn’t have any graphic artists on the team) but it’s waaaaay better than what they had.

XXXX is ambiguous in the namespace 'ASP'

I’ve been getting this error every now and then.

Usually this problem is caused by having 2 controls with the same name.  It can be that they are in different folders as well.

I came across this post today:

Well, a quick search online told me that this might be a result of a known bug in the compiler. The fix was easy, you have to compile your app in non-batch -mode. How do you do this, I hear you asking. Simple: enter the compilation section of your web.config, and set batch=”false”, as so:

<compilation debug=”true” batch=”false”>