我正在发布一个带有 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>
这是我发现的另一个问题,与我的几乎相同。
我想知道我是否做错了什么,或者我是否误解了元数据交换的概念。
我要做的是将所有必要的信息发送给我的客户,这样他们就可以自己自动配置它们并且没有任何硬代码配置。