C# windows服务中的Geniune通道服务器?

C# windows服务中的Geniune通道服务器?,c#,networking,.net-remoting,C#,Networking,.net Remoting,我正在开发一个windows服务中带有geniune通道的服务器,它似乎不像控制台应用程序那么简单。当创建服务器的线程完成其工作时,线程作用域中声明的所有变量都将被销毁,因此客户端无法再连接到该服务器。对于控制台应用程序,我们可以通过Console.readline()避免这种情况,但windows服务的情况不同。因此,第一块代码用于创建服务器的windows服务线程,第二块代码用于控制台应用程序 public void startServer() { System.Configuration

我正在开发一个windows服务中带有geniune通道的服务器,它似乎不像控制台应用程序那么简单。当创建服务器的线程完成其工作时,线程作用域中声明的所有变量都将被销毁,因此客户端无法再连接到该服务器。对于控制台应用程序,我们可以通过Console.readline()避免这种情况,但windows服务的情况不同。因此,第一块代码用于创建服务器的windows服务线程,第二块代码用于控制台应用程序

public void startServer()
{
 System.Configuration.ConfigurationSettings.GetConfig("DNS");
 GenuineGlobalEventProvider.GenuineChannelsGlobalEvent += new GenuineChannelsGlobalEventHandler(GenuineChannelsEventHandler);
 var Path = AppDomain.CurrentDomain.BaseDirectory;
 RemotingConfiguration.Configure(Path + "Server.exe.config");
 RemotingServices.Marshal(new Agent(), "Server.rem");
}


static void Main(string[] args)
{
 System.Configuration.ConfigurationSettings.GetConfig("DNS");
 GenuineGlobalEventProvider.GenuineChannelsGlobalEvent += new GenuineChannelsGlobalEventHandler(GenuineChannelsEventHandler);
 var Path = AppDomain.CurrentDomain.BaseDirectory;
 RemotingConfiguration.Configure(Path + "Server.exe.config");
 RemotingServices.Marshal(new Agent(), "Server.rem");
 Console.ReadLine();
 }

我错过什么了吗?如何实现服务器的可用性?

在调用
Start
时,尝试在服务类中存储
代理
,并在调用
Stop
时在服务关闭时处理它


另一方面,如果这是问题所在,那么你的控制台应用程序也没有理由工作。C++不是C++,在离开作用域时没有调用析构函数。还有,为什么要远程处理而不是更受支持的东西?

这里的问题是…?嗨,我编辑了这个问题:)!因为我需要在客户端和服务器之间创建双向TCP通信,而不需要在两侧打开两个端口。NetRemoting是防火墙友好型的。哈,这很有趣,通常我听到人们说我们应该停止使用Remoting,并出于同样的原因切换到WCF。我们过着怎样的生活。