Пытается получить простую демонстрацию NetTcpBinding, чтобы расширить ее в другой проект.NetTcpBinding - Self-Hosted WCF - Не удается подключиться к клиенту
Архитектура: 2 консольных приложения (1 хост/сервер, 1 клиент) и 1 проект библиотеки типов. Оба консольных приложения имеют ссылку на проект библиотеки типов.
Хост приложения: приложение
class Program
{
static void Main()
{
var netTcpBinding = new NetTcpBinding(SecurityMode.None)
{
PortSharingEnabled = true
};
var netTcpAdddress = new Uri("net.tcp://127.0.0.1:1234/HelloWorldService/");
var tcpHost = new ServiceHost(typeof(HelloWorldService), netTcpAdddress);
tcpHost.AddServiceEndpoint(typeof(IHelloWorld), netTcpBinding, "IHelloWorld");
tcpHost.Open();
Console.WriteLine($"tcpHost is {tcpHost.State}. Press enter to close.");
Console.ReadLine();
tcpHost.Close();
}
}
public class HelloWorldService : IHelloWorld
{
public void HelloWorld()
{
Console.WriteLine("Hello World!");
}
public void WriteMe(string text)
{
Console.WriteLine($"WriteMe: {text}");
}
}
Клиент:
static void Main()
{
Console.WriteLine("Press enter when the service is opened.");
Console.ReadLine();
var endPoint = new EndpointAddress("net.tcp://127.0.0.1:1234/HelloWorldService/");
var binding = new NetTcpBinding();
var channel = new ChannelFactory<IHelloWorld>(binding, endPoint);
var client = channel.CreateChannel();
try
{
Console.WriteLine("Invoking HelloWorld on TcpService.");
client.HelloWorld();
Console.WriteLine("Successful.");
}
catch (Exception ex)
{
Console.WriteLine($"Exception: {ex.Message}");
}
Console.WriteLine("Press enter to quit.");
Console.ReadLine();
}
Тип библиотеки:
[ServiceContract]
public interface IHelloWorld
{
[OperationContract]
void HelloWorld();
[OperationContract]
void WriteMe(string text);
}
I опровергают ве у меня есть все необходимые услуги установки и запуска:
Очевидно, что я пытаюсь сделать все конфигурации во время выполнения.
Я постоянно получаю сообщение об ошибке на клиенте:
Вызывающую HelloWorld на TcpService.
Исключение: Там не было конечной точкой прослушивания на net.tcp: //127.0.0.1: 1234/HelloWorldService /, который может принять сообщение. Это часто вызвано неправильным адресом или действием SOAP. См. InnerException, если имеется, для более подробной информации. Нажмите enter для выхода.
Я пропустил что-то очевидное?
Есть ли внутреннее исключение? Является ли приложение хоста запущенным при запуске клиента? Является ли приложение-хост запущенным под учетной записью с правами администратора? – Tim
InnerException пуст. Он работает с правами администратора и не работает (правильно) при запуске без него. FWIW: Я работал с http привязками, но пытался переключиться на netTcp, потому что я не хотел использовать admin privs. Может быть, придется отказаться от этой идеи. –