2017-01-25 22 views
1

Кому-нибудь, кто может помочь! Я пытаюсь иметь приложение C#, которое говорит, что именованные каналы работают через сеть между двумя компьютерами. Приложения отлично работают на одном ПК и на ПК в пределах одного домена. Но у меня есть проблемы, когда один компьютер находится в «рабочей группе», а один - в домене. Безопасность на сервере не является проблемой, я могу сделать ее максимально открытой.Именованные трубопроводы по всей сети дают «неправильное имя пользователя или пароль»

Справочная информация:

  1. Клиент - компьютер находится в домене, может подключиться к серверу через C $ долю администратора
  2. Сервер - не в домене, приложение работает как консоль, брандмауэр отключен, включен «Разрешить совместное использование файлов и принтеров». Порт 445.

Кажется, что я не могу получить доступ к именованным каналам на удаленном сервере. Код:

// Client Connection 
PipeStream pipe = new NamedPipeClientStream("192.168.1.102", "TEMP_PIPE", PipeDirection.InOut, PipeOptions.Asynchronous, TokenImpersonationLevel.None); 
((NamedPipeClientStream)pipe).Connect(); 


// Server Connection 
PipeSecurity pipeSecurity = new PipeSecurity(); 
pipeSecurity.AddAccessRule(new PipeAccessRule("Everyone", PipeAccessRights.ReadWrite | PipeAccessRights.CreateNewInstance, AccessControlType.Allow)); 
PipeStream pipe = new NamedPipeServerStream("TEMP_PIPE", PipeDirection.InOut, NamedPipeServerStream.MaxAllowedServerInstances, PipeTransmissionMode.Message, 
       PipeOptions.Asynchronous, 0, 0, pipeSecurity); 

При попытке подключения к серверу от клиента Connect() я получаю «имя пользователя или пароль неверно.» ошибка.

Я застрял, не уверен, что это проблема с именем C# .Net с именами или проблема с Windows? Я склонен полагать, что мне нужно разрешить именованные каналы как-то в окнах, но не уверен, как (из-за ошибки имени пользователя/пароля). Любая помощь приветствуется. Заранее спасибо!

ответ

0

Я недавно столкнулся с этой проблемой, когда все работало на моих настольных компьютерах, но не удалось, когда я попытался «поговорить» с планшетом. Я нашел эту статью:

https://www.ca.com/us/services-support/ca-support/ca-support-online/knowledge-base-articles.tec385226.html

Доступ к IPC $ запрещен. (Не, в частности, протокол агента аутентификации, а сам ресурс IPC.) Ожидается, если ваш клиент пытается подключиться к серверу, который не находится в домене Windows клиента.

Я протестировал это, физически связав мой (ранее неудавшийся планшет) непосредственно с моей сетью (т. Е. Не с беспроводным соединением). Приложение работало, и именованные каналы ответили так, как предполагалось.

Несколько примечаний: все мои системы находятся на последней версии Windows 10 Pro (обновление для создателя с недавними исправлениями). Все имеют фреймворк 4.7 с включенной активацией именованных каналов. Кроме того, тесты с 64-разрядной системой, разговаривающей с 32-разрядным планшетом, все еще не работают (такая же ошибка связана с физическим или нет). 64-битная до 64-разрядной версии отлично работает.

Как оказалось, как только я физически подключил планшет к сети один раз, некоторые настройки должны быть включены. Теперь я могу использовать планшет по беспроводной сети, и именованные каналы действуют правильно.

Я не специалист в этой области, поэтому я не уверен последующих шагов, но думал, что я поделиться тем, что я нашел (после того, как много испытаний и обновления.)

Надежда это помогает!