.Net Remoting在控制台应用程序中工作但在Window Service中不起作用

时间:2012-09-11 19:26:10

标签: c# asp.net .net windows-services remoting

我有一个.Net Remoting,它在Console Application中工作,但在Window Service中不起作用。它返回null类型。我不知道这里有什么错误

static void TicketServer()
{
    System.Diagnostics.Debugger.Break();
    //Console.WriteLine("Ticket Server started...");

    TcpChannel tcpChannel = new TcpChannel(9988);
    ChannelServices.RegisterChannel(tcpChannel, true);

    Type commonInterfaceType = Type.GetType("WindowsService.MovieTicket");

    RemotingConfiguration.RegisterWellKnownServiceType(commonInterfaceType,
    "MovieTicketBooking", WellKnownObjectMode.SingleCall);
}

我在Windows服务中获取'commonInterfaceType'为null,而在Console Application中工作正常。当我将应用程序从控制台转移到Windows服务时,我也更改了命名空间

我发现了问题但需要知道为什么会在Windows服务中发生这种情况,例如在图像突出显示的行中可以在控制台应用程序中正常工作,但在Windows服务中返回null。

http://desmond.imageshack.us/Himg339/scaled.php?server=339&filename=testimg.png&res=landing

如果我没错,我认为这是微软的一个错误...... 谢谢

1 个答案:

答案 0 :(得分:0)

在TicketServer()方法体外设置tcpChannel变量。 发生的事情是在方法返回后通道被处理掉。 在控制台应用程序中,我们使用Console类的ReadLine()方法暂停该方法,该方法允许通道继续侦听,并且在按下某个键之前不会被释放,但与Windows服务不同。