Я создал DynamicEndpoint для автоматического поиска службы WCF.
namespace Client
{
class Program
{
static void Main(string[] args)
{
DynamicEndpoint dynamicEndpoint = new DynamicEndpoint(ContractDescription.GetContract(typeof(ICalculator)), new NetTcpBinding());
using (ChannelFactory<ICalculator> channelFactory = new ChannelFactory<ICalculator>(dynamicEndpoint))
{
ICalculator caculate = channelFactory.CreateChannel();
Console.WriteLine("x + y = {2} when x = {0} and y = {1}", 4, 9, caculate.Add(4, 9));
Console.WriteLine("Find service, the service address is: " + dynamicEndpoint.Address.Uri);
}
Console.Read();
}
}
}
Проблема в том, что когда я пытаюсь напечатать адрес службы, возвращаемое значение равно
http://schemas.microsoft.com/discovery/dynamic
Это не реальный адрес службы, который я опубликовал.
1. Как получить реальный сервисный адрес?
2. Если доступно несколько служб, какую из них выберет DynamicEndpoint? Могу ли я получить адресный массив или список?