This may *just* be a Windows Vista/7 permissions issue rather than a mongo c# driver usage issue. The inner exception indicates "access is denied", the outer exception is misleading. I now have
var scp = new ServiceControllerPermission(ServiceControllerPermissionAccess.Control, Environment.MachineName, serviceName);
scp.Demand(); // no exception here
var sc = new ServiceController("mongoDB");
Debug.Assert(sc.CanStop); // no assert here
sc.Stop(); // ==> System.InvalidOperationException' occurred in System.ServiceProcess.dll, InnerException.Message.Equals("access is denied")