У меня возникла любопытная проблема: я пытаюсь подключить службу WCF к приложению WCF, но получаю ошибки.Оба компонента WCF по отдельности работают без сбоев с клиентом тестирования WCF и созданным мной тестовым соединением Winforms.
Вот вызов, который я выполняю в службе WCF (клиент) для ссылки на службу, указанной в моем приложении WCF(сервер).
EventCreationServiceReference.EventCreationServicePortClient _servicereference =
new EventCreationServiceReference.EventCreationServicePortClient();
Теперь я подключаюсь так же, как и Test Harness, единственное отличие, которое я могу себе представить, это Test Harness - простое приложение Winforms с ссылками на сервисы, тогда как этоСлужба WCF разговаривает с приложением Winforms с интерфейсом WCF.
Ошибка;
Could not find endpoint element with name 'EventCreationApp.IEventCreationServicePort'
and contract 'EventCreationAppServiceReference.IEventCreationServicePort' in the
ServiceModel client configuration section. This might be because no configuration file
was found for your application, or because no endpoint element matching this name could
be found in the client element.
Теперь мне стало интересно, почему контракт не был найден, поэтому я попытался создать ссылку на службус указанием подробности договора на обслуживание, но мне представили очень похожую ошибку.
Uri uri = new Uri("net.tcp://172.26.2.11:8525/EventCreationApp");
EndpointAddress endpointAddress = new EndpointAddress(uri);
EventCreationServiceReference.EventCreationServicePortClient _servicereference =
new EventCreationAppServiceReference.EventCreationServicePortClient(
"EventCreationAppServiceReference.IEventCreationServicePort", endpointAddress);
Вот моя конфигурация WCF для приложения WCF;
<system.serviceModel>
<bindings>
<netTcpBinding>
<binding name="EventCreationApp.IEventCreationServicePort" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
transactionFlow="false" transferMode="Buffered" transactionProtocol="OleTransactions"
hostNameComparisonMode="StrongWildcard" listenBacklog="10"
maxBufferPoolSize="524288" maxBufferSize="65536" maxConnections="10"
maxReceivedMessageSize="65536">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<reliableSession ordered="true" inactivityTimeout="00:10:00"
enabled="false" />
<security mode="Transport">
<transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" />
<message clientCredentialType="Windows" />
</security>
</binding>
</netTcpBinding>
</bindings>
<services>
<service behaviorConfiguration="EventCreationApp.Service1Behavior"
name="EventCreationApp.EventCreationServicePort">
<endpoint address="" binding="netTcpBinding"
bindingConfiguration="EventCreationApp.IEventCreationServicePort"
contract="EventCreationApp.IEventCreationServicePort"
name="EventCreationApp.IEventCreationServicePort">
<identity>
<dns value="172.26.2.11" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexTcpBinding" bindingConfiguration=""
contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="net.tcp://172.26.2.11:8525/EventCreationApp" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="EventCreationApp.Service1Behavior">
<serviceMetadata httpGetEnabled="false" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
... иСправочный код службы клиента службы WCF для подключения к приложению.
<system.serviceModel>
<bindings>
<netTcpBinding>
<binding name="EventCreationApp.IEventCreationServicePort" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
transactionFlow="false" transferMode="Buffered" transactionProtocol="OleTransactions"
hostNameComparisonMode="StrongWildcard" listenBacklog="10"
maxBufferPoolSize="524288" maxBufferSize="65536" maxConnections="10"
maxReceivedMessageSize="65536">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<reliableSession ordered="true" inactivityTimeout="00:10:00"
enabled="false" />
<security mode="Transport">
<transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" />
<message clientCredentialType="Windows" />
</security>
</binding>
</netTcpBinding>
</bindings>
<client>
<endpoint address="net.tcp://172.26.2.11:8525/EventCreationApp"
binding="netTcpBinding" bindingConfiguration="EventCreationApp.IEventCreationServicePort"
contract="EventCreationAppServiceReference.IEventCreationServicePort"
name="EventCreationApp.IEventCreationServicePort">
<identity>
<dns value="172.26.2.11" />
</identity>
</endpoint>
</client>
</system.serviceModel>
Помогите, я в полном замешательстве.