En la máquina donde corre el servidor WCF tiene lo puertos TCP que utilizo
abierto.
Me da el siguiente error en el cliente:
Error de negociación de seguridad SOAP:
net.tcp://192.168.255.2:1024/Empresa/Servicio/svc para el destino
net.tcp://192.168.255.2:1024/Empresa/Servicio/svc para el destino consulte
la excepción interna para obtener más información:
El mensaje o firma proporcionados para comprobación han sido cambiados
Este es mi archivo de configuración en el cliente:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IServicioEmpresa"
closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00"
sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false"
hostNameComparisonMode="StrongWildcard"
maxBufferSize="65536" maxBufferPoolSize="524288"
maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8"
transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32"
maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384"
/>
<security mode="None">
<transport clientCredentialType="None"
proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName"
algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
<netTcpBinding>
<binding name="NetTcpBinding_IServicioEmpresa"
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="Message">
<transport clientCredentialType="Windows"
protectionLevel="EncryptAndSign" />
<message clientCredentialType="Windows" />
</security>
</binding>
</netTcpBinding>
</bindings>
<client>
<endpoint address="http://192.168.255.2:8080/Empresa
/ServicioEmpresa.svc/svc"
binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_IServicioEmpresa"
contract="proxy.IServicioEmpresa"
name="BasicHttpBinding_IServicioEmpresa" />
<endpoint address="net.tcp:// 192.168.255.2:1024/Empresa/svc"
binding="netTcpBinding"
bindingConfiguration="NetTcpBinding_IServicioEmpresa"
contract="proxy.IServicioEmpresa"
name="BindingServicio">
<identity>
<userPrincipalName value="MYSER\AOG" />
</identity>
</endpoint>
</client>
</system.serviceModel>
Tiene que ser de permisos pero no se como solucionarlo.
Un saludo.
Yo estoy intentando usar el un proveedor personalizado de asp.net
membership y al intentar acceder al servicio me da el mismo error que
a ti
Error de negociación de seguridad SOAP con 'http://localhost:52051/
WCFDemo2/Service.svc/mex' para el destino 'http://localhost:52051/
WCFDemo2/Service.svc/mex'.
Consulte la excepción interna para obtener más información.
Gracias y un saludo.
En tu caso supongo que también has utilizado certificado, pues si es así,
debes de instalar el mismo certificado en el cliente y en el archivo de
configuración del cliente debes de añadir una configuración de comportamiento
y los EndPoint indicar que vas autilizar ese comportamiento:
<client>
<!-- En behaviorConfiguration indico el nombre de configuración del
comportamiento que ha de usar en esta caso ClientCertificateBehavior-->
<endpoint address="net.tcp://localhost:1132/MiServicios/mex"
behaviorConfiguration ="ClientCertificateBehavior"
binding="netTcpBinding"
bindingConfiguration="NetTcpBinding_IMantenimiento"
contract="proxyServicio.IMantenimiento"
name="NetTcpBinding_IMantenimiento">
<identity>
<certificate
encodedValue="QAwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3kwHhcNMDcwNzAyMTAyNTM5WhcNMzGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDDh1x0utO6ZhvHJB+PralRlGorD+=" />
</identity>
</endpoint>
</client>
<behaviors>
<endpointBehaviors>
<behavior name="ClientCertificateBehavior">
<clientCredentials>
<serviceCertificate>
<defaultCertificate findValue="MiCertificado"
storeLocation="LocalMachine" storeName="My" x509FindType="FindBySubjectName"/>
<authentication revocationMode="NoCheck"
certificateValidationMode="None"></authentication>
</serviceCertificate>
</clientCredentials>
</behavior>
</endpointBehaviors>
</behaviors>
Espero que con esto se te solucione el problema,
Un saludo