private void Stop()
{
if (this.driverServiceProcess != null && !this.driverServiceProcess.HasExited)
{
Uri shutdownUrl = new Uri(this.ServiceUrl, "/shutdown");
DateTime timeout = DateTime.Now.Add(TimeSpan.FromSeconds(3));
HttpWebRequest request = HttpWebRequest.Create(shutdownUrl) as HttpWebRequest;
bool processStopped = false;
while (!processStopped && DateTime.Now < timeout)
{
try
{
request.GetResponse();
}
catch (WebException)
{
processStopped = true;
}
}
this.driverServiceProcess.WaitForExit();
this.driverServiceProcess.Dispose();
this.driverServiceProcess = null;
}
}