Итак, я написал небольшую игру и хочу, чтобы в нее можно было играть через Интернет.
Я тестировал игру только через localhost, используя следующие конфигурации:
Клиентское приложение Winapp:
Файл App.Config
В клиентском коде Winform он подключается следующим образом
ChannelFactory remoteFactory= new ChannelFactory("CommandBoard");
ICommandBoardService proxy = remoteFactory.CreateChannel();
Далее для размещения службы я создаю консольное приложение.
App.config является базовым. Я ничего не менял, только в самом коде.
Код консольного приложения:
static void Main(string[] args)
{
using (ServiceHost host = new ServiceHost(typeof(CommandBoardServiceLibrary.CommandBoardService)))
{
host.AddServiceEndpoint(typeof(
CommandBoardServiceLibrary.ICommandBoardService),
new NetTcpBinding(),
"net.tcp://localhost:9000/commandboard");
host.Open();
Console.ReadLine();
}
}
Одновременная работа клиента и хоста на моем компьютере отлично работает.
Теперь, когда я меняю App.Config клиента на
и запустив его на другом компьютере в другой сети, я получаю следующую ошибку:
System.ServiceModel.Security.SecurityNegotiationException: The server has rejected the client credentials. ---> System.Security.Authentication.InvalidCredentialException: The server has rejected the client credentials. ---> System.ComponentModel.Win32Exception: The logon attempt failed
Где источник этой ошибки? Настроили его неправильно? Или я что-то упускаю?
РЕДАКТИРОВАТЬ: Web.config для службы WCF