小编use*_*185的帖子

无法连接到IPC端口:系统找不到指定的文件

在我的.net 2.0应用程序中,Remote对象突然被破坏并抛出以下异常."无法连接到IPC端口:系统找不到指定的文件."

我有IPC远程服务器,它创建一个单例对象.

我已覆盖InitializeLifetimeService()方法并返回null无限生命周期.

服务器和客户端应用程序工作正常但有时我们得到了上述异常.

serverCode:

//创建并注册processheartbeat.BinaryServerFormatterSinkProvider serverprovider = new BinaryServerFormatterSinkProvider(); serverprovider.TypeFilterLevel = System.Runtime.Serialization.Formatters.TypeFilterLevel.Full; //托管Heartbeat对象并注册它.processHeartbeatChn = new IpcServerChannel("HeartbeatChannel","localhost:"+ applicationHeartbeatPort,serverprovider);

            //registers the channel
            ChannelServices.RegisterChannel(processHeartbeatChn, false);

            //register the service
            RemotingConfiguration.RegisterWellKnownServiceType(typeof(Heartbeat),
                appName, WellKnownObjectMode.Singleton);
Run Code Online (Sandbox Code Playgroud)

ClientCode:

            string uri = string.Format(CultureInfo.InvariantCulture,"ipc://localhost:{0}/{1}", applicationHeartbeatPort, appName);

            //get the Heartbeat object
            remoteHeartbeat = (Heartbeat)Activator.GetObject(typeof(Heartbeat), uri);
Run Code Online (Sandbox Code Playgroud)

任何热修复都可以解决这个问题?

任何人都可以帮我这个吗?

.net-remoting

6
推荐指数
0
解决办法
3131
查看次数

GC.KeepAlive()和System.Timers.Timer

System.Timers.Timer在类级别中对declered 对象进行了创建并在构造函数中创建.在另一个方法中启动了计时器.

在elapsed事件处理程序中,enabled属性设置为false并执行某些代码并再次启用set设置为true.

我正在为每个层级获得过去的事件.问题是在经过一段时间后停止了.

我怀疑GC在已经过时的事件hanler eventhadler中将momment enabled属性设置为false时收集了计时器对象.

所以我希望我的计时器对象设置为活着.

GC.KeepAlive(timer)我应该在我的项目中宣布哪里?

c# garbage-collection

2
推荐指数
1
解决办法
1782
查看次数

标签 统计

.net-remoting ×1

c# ×1

garbage-collection ×1