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.

image

Advertisements

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 http://proq.blogspot.com/

MiniProfilerWebFormsEnabler

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:

demo

N+1

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:

https://nuget.org/packages/MiniProfilerWebformsEnabler

and the source is hosted here:

https://miniprofilerwebforms.codeplex.com/documentation

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 asp.net

Recently a site I was working on, http://www.walshgroup.com 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
        Thread.Sleep(100);
    }
    using (profiler.Step("Step B"))
    { // and here
        Thread.Sleep(250);
    }
}

and see the result live in the browser like this:

Mini Profiler rocks your world with stats right in your page