The blogs of Black Marble staff

SDL Verification Tool

Everybody knows I like a verification tool as I think they are a solid way to enable a solid basis for quality, the argument against is that they do not get every case and so the argument goes we should settle for 20% MK1 human eyeball standards. I am a firm believer in both and so I was made up when Microsoft released the BinScope Binary Analyzer which analyzes binaries to check that they are in compliance with Microsoft’s Security Development Lifecycle (SDL) requirements and recommendations.

get it here


SharePoint Search Gatherer Error 10032

We encountered a problem recently with a two server farm. One server was configured as index and query server. Both servers were delivering pages to users. If a user executed a search on the server which did not run the search services, the Search page returned an error, and we saw the following in the application log and SharePoint logs:

Event Type:    Error
Event Source:    Office Server Search
Event Category:    Gatherer
Event ID:    10032
Could not create a database session.
Context: Application '2bee214b-e0b9-413b-8d85-c71002287e99'
    The database connection string is not available.   (0xc0041228)

Application 2bee214b-e0b9-413b-8d85-c71002287e99: The parent farm application root doesn't exist or access denied. - File:d:\office\source\search\search\searchdll\resourcemanagerimpl.cpp Line:703
Application 2bee214b-e0b9-413b-8d85-c71002287e99: Database session creation error for resource type 0. - File:d:\office\source\search\search\searchdll\resourcemanagerimpl.cpp Line:555

After a great deal of investigation and assistance from the guys at Microsoft, we identified the fault. On the server which had no search services configured, we added the following registry keys, copied across from the server which was running index and query functions:

HKLM\SOFTWARE\Microsoft\Office Server\12.0\Search\Applications\<SEARCH APPLICATION GUID>\ResourceManager                              Data=Server=sqlserver;Database=MOSSWEB_MYSITE_SSP_SEARCH;Trusted_Connection=yes;App=Windows SharePoint Services;Timeout=15                              Server=sqlserver;Database=MOSSWEB_MYSITE_SSP_SERVICE;Trusted_Connection=yes;App=Windows SharePoint Services;Timeout=15

Where the Search Application GUID was the GUID from the error message, and the DB connection strings were copied over from the working server.

This resolved the problem, and now both servers deliver search results correctly.

I’m posting this here because I found only two possible leads in all my searching, neither of which detailed the fault. Hopefully, as always, this will help somebody else.

Guest NLB issues on Hyper-V (Windows Server 2008 R2)

One of the issues I’ve seen during our migration of virtual machines to our new Windows Server 2008 R2 Hyper-V cluster relates to network load balancing (NLB).  We have a number of NLB setups running which will need migrating in time.  My first test migration of a pair of NLB virtual machines (actually, technically a trio of servers making up a SharePoint farm) didn’t go as smoothly as I’d hoped.

The machines in question have been running on a Windows Server 2008 Hyper-V machine quite happily for some time.  I followed the procedure we’ve used to migrate other machines to our new Windows Server 2008 R2 Hyper-V cluster, connecting both network adaptors to the appropriate network when the import had completed.  When I looked at the network settings in the GUI, two network adaptors showed up and the configuration at first glance seemed okay.  When looking at the network configuration using ipconfig however, only the values for one network adaptor (the primary, i.e. non-NLB, adaptor) were shown, with the NLB adaptor missing in action.

In addition, NLB manager showed the following error when I tried to reconfigure the cluster:

adaptor misconfigured detail

The solution to the issue is actually simple; in the Hyper-V VM settings for the NLB network adaptor, turn on MAC address spoofing:

enable spoofing of MAC address

This immediately fixed the issues we were seeing with the NLB adaptor of the machines we were migrating.

TF21508 Error, cannot see build server after moving a Hyper-V image

We have been consolidating our Hyper-V system of late, moving various older systems onto a new SAN based cluster. This has meant we have just moved our virtual TFS2008 build machines. After the move I started seeing the following error on all the builds using that server, re-enabling the build machine had no effect.


I restarted the build VM but this did not fix the problem; I had to also restart the TFS2008 AT, once this was done all was fine. I guess that there was a cached IP/ARP table somewhere routing packets the wrong way.

Technical Tip: if you can’t see the build server don’t just assume it is always the build server at fault, it might be the other calling machine i.e. the TFS AT

Interestingly our TFS2010 build machines did not suffer this problem.

Windows 7 Boot from VHD

I have been having a play with the boot from VHD functions in Windows 7, it seems like a really useful feature when you need the raw power of your PC, but would like the ease of management of Virtual PCs (i.e. can copy them around and archive them), There are many posts on the steps that are required to add a boot from VHD partition  to an existing standard install (remember the VHD must be for a Windows 7 or Windows 2008 R2 operating system), I followed notes on knom’s developer corner. Just a couple of things that got me:

  • The notes say to press Shift F10 to open the console and enter the DISKPART commands to create and mount the new VHD. This is fine, but I then closed the window to continue, this is wrong. In step 6 the notes do say to Alt Tab back to the installer and this is vital. If you close the command window, as I did, the new VDISK is dismounted so you cannot install to it.
  • After the install I could dual boot, I had a ‘real’ Windows 7 install and my ‘boot from VHD’ install. The boot manager showed both in the menu, but they both had the same name ‘Windows 7’, only trial and error showed me which was which. Also my new VHD boot was the default. All a bit confusing and not what I was after. As I find the command line to BCDEDIT not the friendliest for editing the boot setting I tried to use EasyBCD to edit one of the name to ‘Windows 7 VHD’ and alter the default to my original installation. This caused me to end up with two boot options that both pointed to the ‘real’ installation. My guess is that EasyBCD does not understand VHD boot on Windows 7. I therefore had to use the manual command as listed on TechEd. Once this was done all was OK

The next step is to try a VHD boot from an external USB or eSATA disk.

Black Marble Events – Visual Studio 2010, ALM and BizSpark

The Autumn/Winter 2009 Series of Black Marble events kicks off with a day to delight software developers! 

The morning session is an early-access view of Visual Studio 2010 which is being designed inside and out to give developers and development teams every advantage in getting the next ground-breaking application to market – quickly. The upshot is that your business gets to reap the rewards of tomorrow's efficiency today.  Black Marble's Richard Fennell, MVP in Visual Studio Team Foundation Server, demonstrate what's new and exciting for this developer family of products.


The afternoon session takes us through Application Lifecycle Management where we will address how Team Foundation Server, Best Practice and Testing can be implemented to help your business.

The evening session is on BizSpark.  Is your company less than 3 years old, and developing a software product? If so, Microsoft’s BizSpark program could be for you! Black Marble are participating in the program as a Network Partner, and draws upon its years of experience as a technology company to provide guidance and advice.  Come along and find out how BizSpark can benefit you.


Don’t forget there’s a great lunch served from 12:30!