#wcf #wcf-endpoint
#wcf #wcf-конечная точка
Вопрос:
На стороне клиента при использовании службы я получаю следующее исключение: сообщение с адресом «net.tcp: // puv15xgts: 55201 /Ois // Patient / PatientHistory / PatientHistoryService.svc» не может быть обработано получателем из-за несоответствия AddressFilter в EndpointDispatcher. Убедитесь, что адреса конечных точек отправителя и получателя совпадают.
Вот web.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="ospUri" value="http://PUV15XGTS:55000/OSPServices/ServerSettings.svc"/>
<add key="IAuthorization" value="http://PUV15XGTS:55000/OSPServices/Authorization.svc"/>
<add key="ospSystem" value="OSP8"/>
</appSettings>
<connectionStrings/>
<system.serviceModel>
<extensions>
<behaviorExtensions>
<add name="secureOptions" type="VMS.SDF.CustomBehaviorExtensionElement, VMS.SDF"/>
<add name="faultTransport" type="VMS.SDF.FaultTransfer.FaultTransferExtensionElement, VMS.SDF"/>
</behaviorExtensions>
</extensions>
<bindings>
<basicHttpBinding>
<binding>
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="1073741824" maxBytesPerRead="4096" maxNameTableCharCount="16384"/>
</binding>
</basicHttpBinding>
<netTcpBinding>
<binding closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" portSharingEnabled="true" sendTimeout="00:01:00" transactionFlow="false" transferMode="Buffered" transactionProtocol="OleTransactions" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="67108864" maxBufferSize="67108864" maxReceivedMessageSize="67108864">
<readerQuotas maxDepth="256" maxStringContentLength="67108864" maxArrayLength="67108864" maxBytesPerRead="67108864" maxNameTableCharCount="67108864"/>
<security mode="None">
</security>
</binding>
</netTcpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="ServiceBehavior">
<serviceMetadata httpGetEnabled="false"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
<dataContractSerializer maxItemsInObjectGraph="65536000"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="SecuredService">
<secureOptions validateRequest="true" securityLevel="Core" tokenTimeToLive="60"/>
<faultTransport/>
</behavior>
</endpointBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="ServiceBehavior" name="VMS.WebServices.Ois.Patient.PatientHistoryService.ServiceImplementation.PatientHistoryService">
<host>
<baseAddresses>
<!-- <add baseAddress="http://localhost/" />-->
<add baseAddress="net.tcp://localhost:55201/"/>
</baseAddresses>
</host>
<endpoint address="" binding="basicHttpBinding" contract="VMS.WebServices.Ois.Patient.PatientHistoryService.ServiceContracts.IPatientHistoryService" behaviorConfiguration="SecuredService">
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<!--<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />-->
<endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange"/>
<endpoint address="" binding="netTcpBinding" bindingConfiguration="" name="NetTcpBindingEndpoint" contract="VMS.WebServices.Ois.Patient.PatientHistoryService.ServiceContracts.IPatientHistoryService" behaviorConfiguration="SecuredService">
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
</service>
</services>
</system.serviceModel>
<system.web>
<compilation debug="true"/>
</system.web>
</configuration>
Пожалуйста, помогите, что здесь происходит не так.
Комментарии:
1. «Убедитесь, что адреса конечных точек отправителя и получателя совпадают». Вы их проверяли?
2. Где я могу это проверить? немного нового для WCF
3. Проверьте адрес в конфигурации службы и проверьте адрес в конфигурации клиента (если вы используете конфигурации, или проверьте адрес в коде, если вы делаете это в коде).