Я публикую сервис с конечной точкой MEX для обмена метаданными и использую приведенный ниже код для его обнаружения и получения информации метаданных
DiscoveryClient discoveryClient = new DiscoveryClient(new UdpDiscoveryEndpoint());
FindCriteria findCriteria = FindCriteria.CreateMetadataExchangeEndpointCriteria(ContractType);
findCriteria.Duration = TimeSpan.FromSeconds(15);
findCriteria.MaxResults = 1;// MaxResults;
FindResponse result = discoveryClient.Find(findCriteria);
discoveryClient.Close();
ServiceEndpointCollection eps = MetadataResolver.Resolve(ContractType, result.Endpoints[0].Address);
return eps[0].Binding;
Когда я получаю информацию метаданных в моем клиенте, информация о привязке (OpenTimeout
,
ReceiveTimeout
и SendTimeout
) вернулись к значениям по умолчанию.
Вот информация о привязке в хосте
<binding name="MyServiceBinding" closeTimeout="00:05:00" openTimeout="00:05:00"
receiveTimeout="23:50:00" sendTimeout="00:05:00" maxReceivedMessageSize="50000000">
<readerQuotas maxStringContentLength="50000000" maxArrayLength="50000000" />
<reliableSession ordered="true" inactivityTimeout="00:01:00" enabled="false" />
<security mode="None" />
</binding>
вот еще один вопрос, который я нашел, он почти такой же, как у меня.
Привязка службы WCF принимает значения по умолчанию вместо пользовательских значений
Я хотел бы знать, делаю ли я что-то неправильно или неправильно понял концепцию обмена метаданными.
То, что я пытаюсь сделать, это отправить всю информацию, необходимую моим клиентам, чтобы они могли автоматически настраивать себя и не иметь никакой конфигурации жесткого кода.