Event Viewer

The last week in glorious monochrome..


The error showing is down to my machine coming out of hibernation, and as it has zero impact on anything, I don’t care.

This is how Event Viewer should look and my computer works very well indeed for what it is, age, general spec et al, and I never mess with the system because I know that problems will ALWAYS follow.

For the record, this computer runs Windows 8 Pro, Start8, and is always in desktop mode. Hardware is all properly supported by the motherboard manufacturer for Windows 8 except for the on-board video which I don’t use anyway, having bought a Windows 8 compatible cheapie ATI HD6450.

There are many computer users who consider that they know more than Microsoft. I am not one of them anymore and haven’t been for many years. In my early days with computers, I made many mistakes because I listened to these kinds of ‘experts’ and ran idiot stuff which made wild claims.

What I tell people in the Microsoft newsgroups, forums and here is the truth based upon many years of working out why things go wrong. The biggest culprit is the computer operator believing in computer myth and magic.

Easy computing is about common sense and rational, logical stuff, not fairy tales..

Do as I do and as I say and you will not go wrong. I am not suggesting that my ways are the most exciting, and you certainly will not be pushing any boats out based upon my advice, but what you will have is a computer which works, boots up every day and remains in a working condition long enough that you can finish your tasks for the session..


Exchange 2013 cu6 issues being tracked

I don’t know how much this impacts standalone Exchange 2013, but
hybrid/mixed installs with Exchange 2007 appear to be having issues.

(from the bottom of

Issue Reported: Ryan reported on my blog that they are facing an issue
with CU6 in exchange 2007 mix mode here. Any confirmation will be


Following issue reported.
Do not install this CU6 if you have a 2007COEX with EX13. Were having
major issues with databases flapping. This is due to EX07 mailboxes
talking to EX13 mailboxes. MS are aware of this and working on a fix now.

@PrabhatNigam – Yes, we became aware of this issue earlier today. This
happens when a 2007 user attempts to access a delegated mailbox that is
on a 2013 server. This issue is being tracked by KB2997209, that is
still being published.

The EXPTA {blog}: Don’t Deploy Exchange 2013 CU6 If You’re a Hybrid

web-sniffer.net is back again… temporarily?

Functionality *seems* to be back.  But, the site is still listed for sale, and WHOIS has changed.

Registrant is now a “Leonard Quack” of “MenschDanke GmbH”, Berlin.  Previously the Registrant was a Mario Mueller of Lingo4you GbR, Machern.

Hosting has changed too, from Sedoparking.com to Namespace4you.com

Be warned, things could go south again.  The domain has been bouncing between Namespace4you.com, Sedoparking.com and Fastpark.net since around 22 June.  And I see another blogger back in June complained that web-sniffer was gone and was “being redirected to some horrible spammy site where one fears invasion of malware with every passing second”, only to revert to normal a few days later:


The blog dates match in with the hosting history I am seeing:

22 June 2014: Namespace4you to Sedoparking <– Webado.com blog post

26 June 2014: Sedoparking to Namespace4you <– Webado.com update

26 Aug 2014: Namespace4you to Sedoparking

28 Aug 2014: Sedoparking to Fastpark

29 Aug 2014: Fastpark to Sedoparking <– I noticed the redirect and blogged

1 Sept 2014: Sedoparking to Namespace4you. <– Today

The Intelligent systems

Os recomiendo la visualización de este excelente contenido para tener una visión extendida de lo que puede representar un escenario ideal para la próxima revolución tecnológica.

Internet of things – Intelligent Systems Opportunity


Sending video bug reports from Windows Phone devices directly into your bug tracker system

In this post I want to discuss about our new functionality that allows to send perfect video bug reports(user feedback) from windows phone devices directly into your company bug tracker or test management system.

This came to reality with latest updates from Microsoft for their windows phone 8.1 devices.

We provide very simple API to integrate Bugrius into your mobile applications under windows phone 8.1.

You can send us a request at supportATbugrius.com and we will send you a guide how to get our new dot net SDK.

First off, let me remind you about our latest features and usage cases that we described on our web page here

And how you could hear previously that better one time to see than one hundred times to listen, we are starting :)

First of all, you need to add our mobile reference to your project.


After you have added the assembly you can start to invoke our API directly from your mobile application.

To start recording a feedback you need to call StartRecording method (click to enlarge)


To stop recording invoke StopRecording method


Also you will need to use two objects: StateObject and BugReportMobile.

State object

You can use StateObject to receive recording status to show some progress bar on UI and to use recorded file name in your custom workflow.

Status of the operation is changed when StopRecording method is invoked and the recorded file is sent to Bugrius.


If you have a look at the BugReportMobile object you can see required properties to be filled out when you put the object as a parameter to StartRecording method.

All these fields are custom and you can grab values from according UI elements of your application.

You can see the uploaded video bug report from our test application here.

If you will have any questions or suggestions please don’t hesitate to contact me.

Read more about Bugrius in my previous post.

Let me remind you that we have some programs for MVPs!

Follow us on Twitter, Facebook and join us in LinkedIn

How to Find the BIOS and UEFI Firmware Version in Windows

BIOS is a program built into personal computers that starts the operating system when you turn on your computer. It is also referred to as system firmware. BIOS is part of your computer’s hardware and is separate from Windows.

UEFI (Unified Extensible Firmware Interface) is a standard firmware interface for PCs, designed to replace BIOS (basic input/output system). This standard was created by over 140 technology companies as part of the UEFI consortium, including Microsoft. It’s designed to improve software interoperability and address limitations of BIOS.

This tutorial will show you different ways to find out what the current BIOS and UEFI firmware version is for your motherboard in Vista, Windows 7, and Windows 8.

This could be helpful to see if you have the latest BIOS or UEFI firmware version installed.

Read more…

Extending TFS Work Item using a web page and the WebpageControl Revisited

Update 140831: This article has been refreshed with new images and content.

Have you ever wanted to add custom behavior to the TFS work item tracking system? TFS is very flexible when it comes to adding fields, rules and state transitions. But when we need more specialized behavior there is usually only one solution – to implement custom work item controls. It’s pretty straight-forward to implement a work item control (http://witcustomcontrols.codeplex.com/ has some good examples), but we need to implement the control for each client we want to use it (Visual Studio, Web access) and also the control must be deployed to each machine where the client is run.

A much simpler approach can be to implement the extension as a web page and host the web page in the work item form. This solution works with any client (since it’s just a web page) so you won’t have to have one implement for each client type. In TFS 2010 the WebpageControl was introduced, which can be used to host a custom web page inside a work item form. We can configure the control to pass data from the work item to the web page when the control is displayed. So with the WebpageControl we can use the TFS API to write a web page that can surface more or less any data in the work item UI.

In this example I will extend the Test Case work item type with a tab that shows the test suites where the test case is used together with the status of the latest test run in each of the suites.

Note: it’s recommended to work with TFS customization in a sandbox environment so you don’t disturb production use of your TFS. A very easy way to get a development environment for TFS is to use Brian Keller’s Visual Studio / TFS 2012 virtual machine.

The WebpageControl isn’t that much documented on MSDN so I’m going take you through the steps of extending a work item type with the control and linking it to a custom web page.

1. Implement the web page for the extension you want. Since this is just a web application it’s simple to develop, debug and test the extension. Design the page so data can be passed from the work item to the page using URL parameters (http://localhost:9000/test/results?teamprojectName=Scrum2013&testCaseId=313 in this case).


2. Add a WebpageControl to the work item type. The easiest way to add a control is to use the Process Template Editor (part of the TFS Power Tools):


Make sure to set the Dock property to Fill if you want the control to use the whole tab space.

3. Configure the WebpageControl using the Control Settings:
Set the URL to display and other properties as appropriate:


Note the use of field names. You can reference any field with it’s unique reference id, for instance the Team Project name would be $(System.TeamProject).

4. Save and update the work item type definition. Refresh the client you are using to make sure the test case type definition has been updated.

5. Open a test case and see the new control with the custom web page content appear under the Test Suites tab.


Simple, wasn’t it? Feel free to leave comments on what you think of this approach.

Next up I will walk you through the code for the Test Results page.

Windows Services Made Simpler, Part 3

In this series of articles I have been demonstrating a simple approach to making Windows services.  In the previous article I discussed the different components generally involved in writing a service.  I also provided the code for the service host and started working on the service instance.  In this article I’m going to finish up the implementation of the service and demonstrate how all this comes together.

Implementing the Service Instance – OnStop

Implementing OnStop is straightforward. Because the worker thread is looping waiting for the terminate event to be signaled the method simply needs to set the event. When the method returns the SCM assumes the service can be terminated so it is important to ensure that the worker thread is done before returning. This can be done using a simple call to Join. A timeout should probably be provided to ensure the method doesn’t wait too long though.

protected override void OnStop ()
    if (m_evtTerminate != null)

        //Wait for the thread to terminate

One thing to keep in mind is that the service worker itself won’t actually know it is being terminated since all the logic is being handled by the service. For some service workers this is fine but many workers will make blocking calls to database or external services. It is often useful to be able to tell the service worker to cancel what it is doing as well. One simple approach to this is to create a CancellationTokenSource that is passed to the service worker. As part of the stop method cancel the token. The service worker is still responsible for checking the cancellation token but it does allow the worker to cancel out of any work when the service is stopped.

Implementing the Service Worker

The service worker provides the business logic of the service.  Therefore the implementation is completely dependent upon the requirements.  In this article the DoWork method simply sleeps for 5 seconds but the actual logic could be anything.  Again, if the worker does any lengthy work then consider implementing cancellation support.  Beyond cancellation, the worker need not know anything about being run as a service.

public class WorkerService
    public void DoWork ()
        //TODO: Put real work here

Final Implementation Details

At this point we have a fully functioning service that interacts with the SCM properly.  The actual work being done is separated from the service host making it easier to test and even be reused outside the service.  But there are a couple of final details that need to be resolved.

The first issue goes back to the service host code that starts the service when running as a console application.  That code calls the Start method but the method is not public.  Instead we have to implement the method ourselves but it is very straightforward.

public void Start ( string[] args )

The second issue is with the cancellation handler for the console.  The cancellation handler will set the termination event but upon return the console application is terminated.  To cause the console application to remain running we need to set the Cancel property to true like so.

Console.CancelKeyPress += (o,e) => 
    e.Cancel = true;


The final issue is with the underlying service code.  By default a service writes to the event log using a source that is configured at installation time.  If the source is not configured then an exception will occur when writing to the log.  For default log events this is not an issue but if the service code explicitly tries to write something to the log then it will fail.  To check whether the application is running as a service or not you can use the Environment.IsInteractive property.  Any calls to the event log should be wrapped in a check to ensure the service is running (IsInteractive will be false) before trying to write to the log.

Installing a Service

Once you have a working service you’re going to want to install it.  There are quite a few different approaches to installing a service:

Sc.exe can be used on any service but it just installs the service.  Any event logs or other installation tasks will not be performed.  InstallUtil is the best solution for .NET services as it will install any Installer-based component.  One of these happens to be ServiceInstaller

As an aside, InstallUtil is part of the framework and can be used on any machine with the framework installed.  The easiest way to get to it is to start a Developer Command Prompt with administrative privileges.  The DCP is available from the Visual Studio Start Menu folder. 

Creating an Installer

To create a service installer you need only open the service in Visual Studio (the designer), right click the design surface and select the option to add an installer.  There are actually 4 installers: one for the project, one for the service process (ServiceProcessInstaller) and one for the service (ServiceInstaller).  The project installer is simply a container for the other installers.  Installers can have child installers. This is a useful feature when installing things like event logs or services.  The project installer is the parent of the SPI.

The ServiceProcessInstaller is responsible for installing the service process (the host).  As mentioned in the previous article a host can have any number of services.  The SPI defines the process level properties such as the account to use and any user name or password.  Out of the box it is configured to prompt for a user name and password at installation time but you can change it.

The ServiceInstaller is more interesting as it contains the properties for the service.  Each service instance in a process will have its own installer.  Amongst other things the installer determines when the service starts, the description to show and (most importantly) the service name.  The service name is critical to the installer and, if not done correctly, can cause problems.  The ServiceName used by the installer must exactly match the ServiceName property of the associated service instance.  If they do not then the SCM will not be able to start the service as this is the key used by the SCM to find the appropriate service host and instance. 

Keeping the two values in sync is not that hard but, unfortunately, does not play well with the designer.  My recommendation is to define the service name as a named constant in the service instance class.  Then use the named constant in the installer.  Since the designer will not let you reference named constants this has to be done by editing the project installer’s initialization code.  But by using a named constant you avoid maintenance issues.

//Inside service
public Service1 ()
    ServiceName = Name;

public const string Name = "MyService";

//Inside project installer
public ProjectInstaller ()

    serviceInstaller1.ServiceName = Service1.Name;

A few final notes about the service installer.  By default a service runs in its own process.  If you are hosting multiple services in the same process then the service type is modified to use a shared process instead. This is to be expected and is fine.  However if you switch from/to a single service to/from multiple services you need to reinstall the service.  If you modify anything related to the service name, process name or any installer properties then you also need to reinstall the service.  Beyond that, changes to the service code do not require that you uninstall and reinstall the service.

The other note on service installer is actually an “issue” with Windows.  Whenever you uninstall a service be sure to stop the service first.  If a service is running when it is uninstalled then it is marked for deletion but not actually removed.  The service won’t be removed until the next reboot.  As such you cannot reinstall or work with the service without rebooting.

Attached is the service code discussed in this article.  Feel free to play around with it by running it as a normal application and as a service.


Blogserie Modernizing Your Infrastructure with Hybrid Cloud

Keith Mayer (Senior Technical Evangelist bei Microsoft) hat eine Blogserie herausgegeben zum Thema “Modernizing Your Infrastructure with Hybrid Cloud” und hat sich dazu BeitrĂ€ge mehrerer Kollegen geholt.

Die Serie wird sicherlich noch fortgesetzt, schaut einfach hier nach neuen BeitrÀgen: Modernizing Your Infrastructure with Hybrid Cloud

Viele GrĂŒĂŸe

Dieter Rauscher
MVP Forefront

Broadcom nics again

Poor network performance on virtual machines on a Windows Server 2012 Hyper-V host if VMQ is enabled:

You’d think by now we would have solved these issues with Broadcom nics….. but obviously we still have not.


Recent Comments