Я не могу заставить именованные каналы работать в пределах одной или двух виртуальных машин в Azure. Набор доступности не вариант.
Таким образом, если имя виртуальной машины - testVM.cloudapp.net, именованный канал не работает с неверным именем пользователя или паролем. Если мы используем testVM вместо FQDN, именованный канал работает нормально.
Виртуальной сети нет, брандмауэр у нас правильно настроен (даже выключил).
Добавление файла lmhosts с внутренним ip-адресом, сопоставленным с testVM.cloudapp.net, не решило этой проблемы. Доступ к \ testVM.cloudapp.net запрашивает аутентификацию и терпит неудачу. Но \ testVM работает. Как мне настроить это, чтобы оно работало. Как только это сработает, я хочу распространить это на несколько виртуальных машин.
Именованные каналы работают только на одной физической машине. (Они читают / записывают в блок оперативной памяти)
В Azure у вас нет гарантии, что две виртуальные машины будут на одной физической машине * (и я сомневаюсь, что им было бы разрешено использовать оперативную память, если бы они были).
Поэтому вам нужно будет использовать веб-службу на основе IP (tcp, http, AMPQ)
Если вы хотите поделиться файлами, может быть лучше записать в хранилище BLOB-объектов Azure и прочитать из него вторую виртуальную машину. Веб-службы обычно не очень хороши для обработки больших объемов данных (обычно> 2 МБ)
* Я предполагаю, что они не будут помещать их на одну и ту же физическую машину, так как это будет единственная точка отказа, и в этом случае более крупный экземпляр будет лучшим выбором.
Обновить
Если вы используете WCF NamedPipes binding (NetNamedPipesBinding), вы можете использовать это только на одном компьютере.
Вы жестяная банка использовать окна именованные каналы через границы машины, поскольку он возвращается к tcp. (Если вы используете WCF, вам следует выбрать привязку на основе tcp при переходе через границы компьютера) Дополнительные сведения Вот.