Что действительно происходит, когда человек звонит Открыть метод IRequestChannel? Например, если у меня есть следующий код:WCF RequestChannel; Что действительно происходит?
ChannelFactory<IRequestChannel> factory = new ChannelFactory<IRequestChannel>();
// using a netTcpBinding to a net.tcp://localhost:9999/Bar
IRequestChannel outchannel = factory.CreateChannel();
outchannel.Open(); // what happens here?
if (outchannel.State == CommunicationState.Opened)
{
success = true;
}
outchannel.Close();
я, кажется, чтобы получить «ложных срабатываний» на некоторые услуги с аккуратными аварий на других. Я бы предположил, что всегда получаю ложные срабатывания, если это никоим образом не проверяет, что канал открыт.
Любые предложения по улучшению? Я хотел бы избежать отправки сообщения, так как это просто проверка жизнеспособности службы для диагностического теста, но я могу, если это необходимо.
я заметил из нашего файла конфигурации, что каналы, которые возвращают ложные срабатывания используют следующие behaviorConfiguration:
<binding name="secureNetTcpStream" maxBufferSize="2000000" maxReceivedMessageSize="2000000000" transferMode="Streamed" sendTimeout="00:05:00" receiveTimeout="14:00:00">
<readerQuotas maxStringContentLength="2000000000" maxArrayLength="2000000000" />
<security mode="TransportWithMessageCredential">
<message clientCredentialType="UserName" />
</security>
</binding>
Интересно, если поточная конфигурация поведения, что приводит к IRequestChannel показывая он открыт даже если хост и служба недоступны?