C# 正在等待连接数周的命名管道

C# 正在等待连接数周的命名管道,c#,asp.net,.net,pipe,named-pipes,C#,Asp.net,.net,Pipe,Named Pipes,我对命名管道有一个奇怪的问题,下面是描述: 我使用命名管道在应用程序的新实例和旧实例之间传输缓存 事情是这样的: 1)当应用程序启动时,它会尝试连接并从应用程序的旧实例接收缓存 2)当应用程序启动时,它可以为下一个新应用程序提供缓存 3)我有两个管道,让我们称它们为pipe1和pipe2 3.1)第一个应用程序使用pipe1提供缓存,并使用pipe2接收缓存 3.2)第二个应用程序使用相反的方式,pipe2提供缓存,pipe1接收缓存 4)新应用程序启动后,旧应用程序将被销毁 5)应用程序实例在

我对命名管道有一个奇怪的问题,下面是描述:

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

事情是这样的:

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

2)当应用程序启动时,它可以为下一个新应用程序提供缓存

3)我有两个管道,让我们称它们为
pipe1
pipe2

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

3.2)第二个应用程序使用相反的方式,
pipe2
提供缓存,
pipe1
接收缓存

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

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

一般来说,它工作得很好。(如果我每天更新一次应用程序,或者两天、三天更新一次)

但是我已经有几个星期没有更新了,我遇到了一个问题:这个应用程序在没有更新的情况下工作了几个星期。这意味着第一个应用程序将pipe1打开了几个星期,当我开始更新时,该应用程序的新实例(至少我可以根据我的日志判断)连接到旧实例到pipe1,然后就冻结了!什么都没有发生,换句话说,它无法启动

问题: 1)管道可以打开多长时间?例如,如果我使用此选项:

pipe.BeginWaitForConnection(myCallBack,pipe)

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

2)或者这里可能出了什么问题

*只是想提醒一下:在这段“长”的更新间隔之前,它工作得很好

提前感谢您的任何想法或建议

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

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

第一对(A1 A2)获得异常
System.IO.IOException:信号量超时时间已过期

只有第二对冻结了