C# 正在等待连接数周的命名管道
我对命名管道有一个奇怪的问题,下面是描述: 我使用命名管道在应用程序的新实例和旧实例之间传输缓存 事情是这样的: 1)当应用程序启动时,它会尝试连接并从应用程序的旧实例接收缓存 2)当应用程序启动时,它可以为下一个新应用程序提供缓存 3)我有两个管道,让我们称它们为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)应用程序实例在
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:信号量超时时间已过期
只有第二对冻结了