NamedpipeClientStream 接続不能、タイムアウトを保持
NamedPipeClientStream が名前付きパイプに接続できない場合は次のいずれかの場合に発生します。
- パイプ名に誤りがあります。クライアントコードで使用しているパイプ名がサーバサイドのコードで作成されたパイプ名と完全に一致するように確認してください。パイプ名は文字の大文字小文字を区別します。
- サーバは起動していません:クライアントが接続を試す前に、サーバが起動していて受信接続要求をリッスンしていることを確認してください。 NamedPipeServerStream.WaitForConnection メソッドをサーバ側のコードで呼び出すことで、クライアントの接続を待機できます。
- パイプへのアクセス権限不足:サーバー側で作成した名前付きパイプに限定的な権限が設定されていると、クライアントが接続できない場合があります。クライアント側でパイプに接続するための十分な権限が設定されていることを確認してください。パイプを作成するサーバー側で、PipeSecurity.SetAccessRule メソッドを使用して適切なパイプアクセスルールを追加するなど、アクセス権限をより緩やかな設定にすることを検討してください。
- ファイアウォールまたはセキュリティソフトの制限:一部のファイアウォールまたはセキュリティソフトでは、クライアントとサーバー間の名前付きパイプ接続がブロックされる可能性があります。ファイアウォールまたはセキュリティソフトの設定を確認し、クライアントとサーバー間の通信が許可されているか確認してください。
接続のタイムアウトが発生する場合は、ネットワークの問題、またはサーバー側で接続要求が正しく処理されなかったことが原因として考えられます。接続のタイムアウト時間を長くするか、クライアント側コードで接続のタイムアウトの例外を取得して適切に対処するようにします。NamedPipeClientStream.Connect(Int32)メソッドを使用して、接続のタイムアウト時間を指定できます。