命名管道等待连接几周

时间:2017-01-09 10:25:04

标签: c# asp.net .net pipe named-pipes

我对命名管道有一个奇怪的问题,所以这里是描述:

我使用命名管道来在应用程序的新旧实例之间传输缓存。

它发生在这样:

1)当应用程序启动时,它会尝试从应用程序的旧实例连接并接收缓存。

2)当应用程序启动时,它已准备好为下一个新应用程序提供缓存。

3)我有两个管道,让我们称之为pipe1pipe2

3.1)第一个应用使用pipe1提供缓存,pipe2用于接收缓存

3.2)第二个应用使用反之亦然,pipe2提供缓存,pipe1用于接收缓存

4)在新应用启动后,旧应用将被销毁

5)应用程序的实例在同一台机器上工作

一般来说,它运作正常。 (如果我每天更新一次我的应用程序,或者每两天,三天更新一次)

但是我几周没有完成它(更新),我遇到了问题:应用程序工作了几周而没有更新。这意味着第一个应用程序保持pipe1打开了几个星期,当我开始更新时,应用程序的新实例(至少我可以根据我的日志判断)连接到旧实例到pipe1并且只是冻结!没有任何事情发生,换句话说它无法启动。

的问题:

1)管道可以打开多长时间?例如,如果我使用它:

pipe.BeginWaitForConnection(myCallBack, pipe);

如果我想在几周内连接到管道,它是否仍然可以打开并准备好工作?

2)或者这里可能出现的问题?

*只是想提醒一下:在此之前它运作良好' long'更新之间的一段时间。

提前感谢任何想法或建议!

更新1 :实际上我有3对命名管道

(A1 A2),(B1 B2),(C1 C2)在该示例A1中等于pipe1并且A2等于pipe2。每对夫妇的算法都是一样的。 (一对用于转移缓存,另一对用于转移用户的会话等)

第一对(A1 A2)得到异常System.IO.IOException: The semaphore timeout period has expired

只有第二对冻结......

0 个答案:

没有答案
相关问题