Ich führe einen einfachen Dienst auf meinem Server mit WCF aus; der Dienst wird in WebDev.WebServer.exe (lokal) gehostet.
Wenn ich den lokalen Dienst aufrufe, erhalte ich die folgende Ausnahme:
Unbehandelte Exception: System.ServiceModel.Security.SecurityNegotiationException: Der sichere Kanal kann nicht geöffnet werden, da die Sicherheitsverhandlung mit dem entfernten Endpunkt fehlgeschlagen ist. Dies kann auf eine fehlende oder falsch angegebene EndpointIdentity in der zum Erstellen des Kanals verwendeten EndpointAddress zurückzuführen sein. Bitte überprüfen Sie, ob die in der EndpointAddress angegebene oder implizierte EndpointIdentity den entfernten Endpunkt korrekt identifiziert. ---> System.ServiceModel.FaultException: Die Nachricht mit der Aktion ' http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Issue ' nicht verarbeitet werden beim Empfänger verarbeitet werden, da der ContractFilter beim EndpointDispatcher nicht übereinstimmt. Dies kann der Fall sein aufgrund entweder eine Vertragsfehlanpassung (nicht übereinstimmende Aktionen zwischen Sender und Empfänger) oder eine Bindungs-/Sicherheitsfehlanpassung zwischen dem Sender und dem Empfänger. Prüfen Sie, ob Sender und Empfänger denselben Vertrag und dieselbe Bindung haben (einschließlich Sicherheitsanforderungen, z. B. Message, Transport, None).
Hier sind meine beiden app.config-Dateien vom Client und vom Server. Die app.config vom Client habe ich mit dem svcutil-Tool erstellt, sie sollte also richtig sein:
Kunde
<client>
<endpoint address="http://localhost:1634/UsuarioContexto.svc" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IUsuarioContexto"
contract="CarWin.ServiceContracts.Interfaces.IUsuarioContexto" name="LOCAL_WSHttpBinding_IUsuarioContexto">
<identity><dns value="localhost" /></identity>
</endpoint>
</client>
<binding name="WSHttpBinding_IUsuarioContexto" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false">
<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" proxyCredentialType="None" realm="" />
<message clientCredentialType="Windows" negotiateServiceCredential="true" algorithmSuite="Default" establishSecurityContext="true" />
</security>
</binding>
Server
<services>
<service behaviorConfiguration="UsuarioContextoBehavior" name="UserContext.Host.UsuarioContexto">
<endpoint address="" binding="wsHttpBinding" bindingNamespace="http://CarWin" bindingConfiguration="wsHttpBinding_IUsuarioContexto"
contract="CarWin.ServiceContracts.Interfaces.IUsuarioContexto">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
<bindings>
<wsHttpBinding>
<binding name="wsHttpBinding_IUsuarioContexto" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false">
<readerQuotas maxArrayLength="2147483647" maxStringContentLength="2147483647" maxBytesPerRead="2147483647" />
<reliableSession ordered="true" inactivityTimeout="00:10:00" enabled="false" />
<security mode="None">
<transport clientCredentialType="Windows" proxyCredentialType="None" realm="" />
<message clientCredentialType="Windows" negotiateServiceCredential="true" establishSecurityContext="true" />
</security>
</binding>
</wsHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="UsuarioContextoBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>