Пожалуйста, смотрите этот код:
namespace Server.Contracts
{
[ServiceContract]
public interface IMessageService
{
[OperationContract]
void DoWork(string message);
}
}
Сервер
namespace Server
{
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
public class MessageService : IMessageService
{
public void DoWork(string message)
{
Console.WriteLine(message);
}
}
}
Клиент
namespace Client
{
class Program
{
static void Main(string[] args)
{
int i = 0;
var location = new[] { "London", "Paris", "New York", "Tokyo" };
if (Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName).Length <= 2)
{
// Start my Server...
Process.Start(@"C:\Server\bin\Debug\Server.exe");
}
i = Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName).Length;
string loc = location[i];
new Program().Stt(loc);
}
private void Stt(string loc)
{
Console.WriteLine("Press ank key to continue...");
Console.ReadLine();
var uri = "net.tcp://localhost:4565/MessageService";
var binding = new NetTcpBinding(SecurityMode.None);
var channel = new ChannelFactory<IMessageService>(binding);
var endpoint = new EndpointAddress(uri);
var proxy = channel.CreateChannel(endpoint);
if (proxy != null)
proxy.DoWork(loc);
Console.ReadLine();
}
}
}
Итак, после того, как я запустил свой server
, и одновременно server
и clients
, я хочу отправить сообщение:
if (proxy != null)
proxy.DoWork(loc);
Итак, в этот момент я получил эту ошибку, хотя мой сервер и работает:
System.ServiceModel.EndpointNotFoundException: 'Конечной точки не было
прослушивание в net.tcp: // localhost: 4565 / MessageService, который может принять
сообщение. Это часто вызвано неправильным адресом или SOAP
действие. См. InnerException, если имеется, для более подробной информации. '