我需要在启动服务器时进行一些连接。我为这个客户端服务器应用程序使用wcf技术。问题是服务器的构造函数在任何时候都没有被调用,所以目前,当第一个客户端建立连接时,我初始化连接。但是这会在更多部分产生问题。如何在启动时初始化服务器?
这是我的服务器设置:
private static ServiceHost _svc;
static void Main(string[] args)
{
NetTcpBinding binding = new NetTcpBinding(SecurityMode.Message);
Uri address = new Uri("net.tcp://localhost:8000");
_svc = new ServiceHost(typeof(MonitoringSystemService), address);
publishMetaData(_svc, "http://localhost:8001");
_svc.AddServiceEndpoint(typeof(IMonitoringSystemService), binding, "Monitoring Server");
_svc.Open();
Console.WriteLine("Listener service gestart op net.tcp://localhost:8000/Monitoring");
Console.ReadLine();
}
private static void publishMetaData(ServiceHost svc, string sEndpointAddress)
{
ServiceMetadataBehavior smb = svc.Description.Behaviors.Find<ServiceMetadataBehavior>();
if (smb != null)
{
smb.HttpGetEnabled = true;
smb.HttpGetUrl = new Uri(sEndpointAddress);
}
else
{
smb = new ServiceMetadataBehavior();
smb.HttpGetEnabled = true;
smb.HttpGetUrl = new Uri(sEndpointAddress);
svc.Description.Behaviors.Add(smb);
}
}
我怎样才能启动服务器,而不必等待客户端登录,所以我可以初始化。
在此先感谢。
“服务器的构造函数没有随时调用”......你在说什么构造函数? MonitoringSystemService?你的Main方法在程序启动时被调用,为什么不初始化那里的连接? – 2010-04-23 10:34:08
是的,我的意思是MonitoringSystemService的cunstructor。 我需要在MonitoringSystemService中调用连接,如果我从主方法初始化,则无法访问它。 – Terry 2010-04-23 11:38:55