I 메타 데이터 교환을위한 MEX 엔드 포인트와 서비스를 게시 그리고 난 메타 데이터 정보WCF의 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 Service Binding taking default values instead of custom values
내가 뭔가 잘못하고있어 알고 싶습니다또는 I 메타 데이터 교환의 개념을 잘못 이해합니다.
내가하려고하는 일은 내 고객에게 필요한 모든 정보를 보내어 자동으로 구성하고 하드 코드 구성이 없도록하는 것입니다.
대신 WSDL을 사용해야합니까? –
@Jose Manuel Ojeda : 아니요. 별 차이가 없습니다. MEX와 WSDL은 거의 같습니다. MEX 또는 WSDL을 통한 타임 아웃과 같은 설정 정보를 자동으로 교환하는 방법은 없습니다. –
maxMessageLenght를 수정할 때이 문제에 직면했습니다. 전체 바인딩 정보를 게시 할 수 없으면 클라이언트 측에서 구성 정보가 필요하므로이 전체 mex 게시가 쓸모 없게됩니다. – Bruno