我需要在啓動服務器時進行一些連接。我爲這個客戶端服務器應用程序使用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