【发布时间】:2010-04-23 10:22:04
【问题描述】:
我需要在服务器启动时建立一些连接。我正在为这个客户端-服务器应用程序使用 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);
}
}
如何在不等待客户端登录的情况下启动服务器,以便初始化它。
提前致谢。
【问题讨论】:
-
"服务器的构造函数在任何时候都没有被调用"...你说的是哪个构造函数?监控系统服务?您的 Main 方法在您的程序启动时被调用,为什么不在那里初始化连接?
-
是的,我的意思是 MonitoringSystemService 的 cunstructor。我需要在MonitoringSystemService中调用连接,如果我从main方法初始化就无法访问。
标签: c# wpf wcf initialization