按照传统的写法我试过好多次都发现通过 Winform 向 Windows 服务发送消息 Windows 服务收不到, 而在两个 Winform 程序之间却可以正常通信代码如下:
IpcServerChannel serverChannel = new IpcServerChannel('ipc');
ChannelServices.RegisterChannel(serverChannel, false); RemotingConfiguration.RegisterWellKnownServiceType(typeof(RemotingObject), 'hi', WellKnownObjectMode.SingleCall);
后来在查找解决此问题的方法时看到别人写过的代码:
IpcServer Channel BinaryServerFormatterSinkProvider provider = new BinaryServerFormatterSinkProvider();
provider.TypeFilterLevel = TypeFilterLevel.Full;
Hashtable ht = new Hashtable();
ht['portName'] = 'ServerChannel';
ht['name'] = 'ipc';
ht['authorizedGroup'] = 'Everyone';
serverChannel = new IpcServerChannel(ht, provider);
ChannelServices.RegisterChannel(serverChannel, false); RemotingConfiguration.RegisterWellKnownServiceType(typeof(RemotingObject), 'hi', WellKnownObjectMode.Singleton);
这样试了一下, 在 Windows 服务中可以收到消息了
来源: http://www.92to.com/bangong/2018/01-30/33239490.html