First of all, Happy New Year in 2013! This time I’m sitting in my home office, seeing snow everywhere out the window:

When I’m not outside to enjoy the fun and beauty of winter, I’m mostly getting prepared for my upcoming workshops and conference sessions, like for the European SharePoint Conference in a few weeks where I have a full day Search Workshop as well as three breakout sessions.

During my SharePoint 2013 Search sessions, one of my favorite topic and demo is the new Developer Dashboard. Let me show you a use case where I can demonstrate its power while debugging and troubleshooting Search.

Let’s say, your end users start complaining that Search Center is down. When you ask them what they mean on this their response is like “Something went wrong…”You know, they can see this on the UI:

You have two options here. First, you can start guessing OR you can turn on the Developer Dashboard and make real, “scientific” debugging. Moving forward on this way, turn on the Developer Dashboard by using PowerShell:

$content = ([Microsoft.SharePoint.Administration.SPWebService]::ContentService)

$appsetting =$content.DeveloperDashboardSettings

$appsetting.DisplayLevel = [Microsoft.SharePoint.Administration.SPDeveloperDashboardLevel]::On

$appsetting.Update()

Going to your SharePoint site, you’ll notice a new, small icon in the top right corner (supposing the default master page) which you can open the Developer Dashboard with:

Anyway, going to your Search Center, you cannot see this icon at all:

This can be confusing, of course, but if you open the Developer Dashboard either before you navigate to the Search Center OR from the Site Settings of the Search Center, you’ll get it working and you can get its benefits.

When the Developer Dashboard gets opened, you’ll notice that it’s a new browser window in SharePoint 2013 and it has several TABs for several information to display:

  • Server Info
  • Scopes
  • SQL
  • SPRequests
  • Asserts
  • Service Calls
  • ULS
  • Cache Calls

After opening and navigating (back) to the Search Center, simply run a query, then refresh the Developer Dashboard. The result you’ll get is something like this:

Well, it’s a LOT of information you get here, isn’t it? In this example, just simple go to the ULS tab (of course, you can crawl the others and look around what you get there too) and search (Ctrl + F) either for “error” or more specifically for the Correlation ID seen on the Search Center. Either way, you’ll get find an error message like this:

Error occured: System.ServiceModel.EndpointNotFoundException: Could not connect to net.tcp://trickyaggie/39B739/QueryProcessingComponent1/ImsQueryInternal. The connection attempt lasted for a time span of 00:00:02.1383645. TCP error code 10061: No connection could be made because the target machine actively refused it.

Woot! QueryProcessingComponent1 throws an EndpointNotFoundException. Let’s go to the QueryProcessingComponent1and check its status (is the server running?), its network connection as well as the services running on it. There’s a service called “SharePoint Search Host Controller” that should be started – if it’s stopped, just simply start it and check the Search Center again.

Of course, this is only a small example of using Developer Dashboard but I’m confident the more you’ll play with it the more you’ll value its capabilities and power.

I really would like to learn more about your experiences of Developer Dashboard. Please, share in a comment here or by emailing me. Thanks!