Pergunta

Estou executando um serviço simples no meu servidor com o WCF; O serviço está hospedado em webdev.webserver.exe (local).

Quando ligo para o serviço local, recebo a seguinte exceção:

Exceção não tratada: System.Servicemodel.Security.SecurityNegoTiationException: O canal seguro não pode ser aberto porque a negociação de segurança com o endpoint remoto falhou. Isso pode ser devido a um endpointentity ausente ou especificado incorretamente no endpointddress usado para criar o canal. Verifique se o EndPointIdentity especificado ou implícito pelo EndpointDress identifica corretamente o terminal remoto. ---> System.Servicemodel.FaultException: A mensagem com ação 'http://schemas.xmlsoap.org/ws/2005/02/trust/rst/issue'Não pode ser processado no receptor, devido a uma incompatibilidade de filtro de contrato no EndPointDispatcher. Isso pode ser por causa de uma incompatibilidade de contrato (ações incompatíveis entre remetente e receptor) ou uma incompatibilidade de ligação/segurança entre o remetente e o receptor. Verifique se o remetente e o destinatário têm o mesmo contrato e a mesma ligação (incluindo requisitos de segurança, por exemplo, transporte, nenhum).

Aqui estão meus dois arquivos app.config do cliente e do servidor. Eu fiz o app.config do cliente com o Svcutil-Tool para que deve estar certo:

Cliente

<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>

Servidor

<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>
Foi útil?

Solução

.

Para superar o tédio que segue no início de cada projeto de design do SharePoint 2010, criei um simples snippet de CSS destinado a Redefinir Os estilos de interface do SharePoint para herdar do seu padrãoEstilos de documentos.

Dê uma olhada no SharePoint 2010 CSS redefinir de Kyle Schaeffer.Eu não testei ainda, mas parece fazer exatamente o que você está procurando.

Outras dicas

O WCF é muito poderoso, mas pode ser um pesadelo de configuração. Aqui estão alguns leads em potencial:

  • Ligue os logs do WCF Trace, execute novamente seu cenário e verifique os logs com svctraceviewer.exe
  • Descubra até onde fica as mensagens ...
    • O IE faz o cliente forma a solicitação e a envia ao servidor que a rejeita (ou seja, nas camadas mais baixas do WCF antes que seu próprio código de serviço seja atingido);
    • Ou a solicitação é interrompida antes disso. O cliente nunca envia a solicitação
  • http://schemas.xmlsoap.org/ws/2005/02/trust/rst/issue é uma mensagem relacionada ao token da WS-Trust, então haverá algo acontecendo com autenticação
    • O erro implica que há uma incompatibilidade de configuração, mas o uso do svcutil deve fazê -los alinhados como você disse
  • A ligação ao cliente tem o servidor em "http: // localhost: 1634/usuariocontexto.svc"
    • Não vejo essa porta especificada na configuração do serviço ... O serviço está ouvindo nessa porta?
    • Se você abrir um navegador e apontar para esse URL, você obtém uma página de serviço padrão?
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top