Конфигурация на стороне клиента WCF для другого URI конечной точки
Я нахожусь в ситуации, когда мне нужно разработать клиент WCF, который будет иметь другой URI EndPoint, но другие параметры останутся такими же. Я бы получил URI EndPoint от пользователя.
Итак, я хотел знать, если я использую службу WCF с использованием ChannelFactory, тогда мне нужен файл app.config, который будет содержать конфигурацию на стороне клиента WCF только с одной конечной точкой, а атрибут адреса будет пустым (который я получу в качестве ввода от пользователя) Или мне нужно перейти на программно потребляющий сервис.
1 ответ
Оставьте конечную точку пустой в файле конфигурации. В своем коде добавьте метод, подобный приведенному ниже, который принимает endpointAddress в качестве параметра, который может исходить от пользователя. Используйте этот метод для создания фабрики каналов, которую вы в конечном итоге будете использовать для создания прокси
private ChannelFactory<IService1> GetChannelFactory(string endpointAddress)
{
// create a binding that will be common
BasicHttpBinding myBinding = new BasicHttpBinding();
//get your uri from the user
EndpointAddress myEndpoint = new EndpointAddress(endpointAddress);
ChannelFactory<IService1> myChannelFactory = new ChannelFactory<IService1>(myBinding, myEndpoint);
return myChannelFactory;
}