.NET 3.5 (C #) Именованные каналы по сети - PullRequest
3 голосов
/ 04 февраля 2010

Я изо всех сил пытаюсь получить именованный канал .NET ( НЕ WCF) для связи по сети. Документация MSDN подразумевает, что это возможно, даже тривиально. Но мой код:

 using (NamedPipeClientStream pipeClient = new NamedPipeClientStream(servername, "myPipe", PipeDirection.InOut, PipeOptions.None, TokenImpersonationLevel.Impersonation))

... отлично работает, когда servername = "localhost" и труба-сервер находится в том же окне. Но если это другая машина - независимо от того, сделаю ли я имя сервера, IP-адрес, DNS-имя, NetBIOS-имя, UNC-путь и т. Д. - означает, что канал никогда не подключается. Это на самом деле не дает сбоя, pipeClient.Connect () просто сидит там.

На разных форумах, блогах и сайтах очень много разных и противоречивых сообщений. Может ли кто-нибудь исправить ситуацию и сказать мне: как получить клиент Named Pipe для подключения одного приложения C # на одном компьютере к серверу Named Pipe, запущенному на другом компьютере?

1 Ответ

2 голосов
/ 04 февраля 2010

Вы делаете это на работе?Работает ли корпоративный брандмауэр или антивирус?Проверьте журналы событий Windows и все приложения в области значков уведомлений о задачах на панели запуска на наличие подсказок о том, кто это блокирует.

...