我有一个.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
如果我没错,我认为这是微软的一个错误...... 谢谢
答案 0 :(得分:0)
在TicketServer()方法体外设置tcpChannel变量。 发生的事情是在方法返回后通道被处理掉。 在控制台应用程序中,我们使用Console类的ReadLine()方法暂停该方法,该方法允许通道继续侦听,并且在按下某个键之前不会被释放,但与Windows服务不同。