Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

starting and stoping serviceHost

3 views
Skip to first unread message

wes

unread,
Dec 15, 2008, 11:39:01 PM12/15/08
to
I have a form and a button on it to start and stop the service host.
Everything was working fine until i tried to add a MEX endpoint to it. I
added the MEX endpoint and the service starts fine but when i try to stop it
i get a "null reference" error on myServiceHost.Close();
can anyone see what i am doing wrong?

Thanks

private void button1_Click(object sender, EventArgs e)
{
if (serviceStarted)
{
myServiceHost.Close();
serviceStarted = false;
button1.Text = "Start Service";
}
else
{

BindingElement bindingElement = new
TcpTransportBindingElement();
CustomBinding binding = new CustomBinding(bindingElement);
Uri tcpBaseAddress = new
Uri("net.tcp://localhost:2202/PatientService");
ServiceHost myServiceHost = new
ServiceHost(typeof(PatientService), tcpBaseAddress);
myServiceHost.AddServiceEndpoint(typeof(IService1), binding,
tcpBaseAddress);
ServiceMetadataBehavior metadataBehavior;

//Adding a MEX MetaData to the net.tcp endpoint
metadataBehavior =
myServiceHost.Description.Behaviors.Find<ServiceMetadataBehavior>();
if (metadataBehavior == null)
{
metadataBehavior = new ServiceMetadataBehavior();
metadataBehavior.HttpGetEnabled = true; //need this
in order to see it in IE
//just a relative address fot net.tcp
Uri tcpInternetExplorerAddress = new
Uri("http://localhost:2203/PatientService");
metadataBehavior.HttpGetUrl = tcpInternetExplorerAddress;
myServiceHost.Description.Behaviors.Add(metadataBehavior);
}

myServiceHost.AddServiceEndpoint(typeof(IMetadataExchange), binding, "MEX");

myServiceHost.Open();

serviceStarted = true;
button1.Text = "Stop Service";
}
}

0 new messages