Que protocolo/transporte utilizar en WCF - DotNetClubs
en

DotNetClubs

Comunidades de estudiantes entusiastas de la tecnología

Que protocolo/transporte utilizar en WCF

Último artículo 08-31-2007 13:12 escrito por AOG. 0 respuestas.
Página 1 de 1 (1 elementos)
Ordenar mensajes: Anterior Siguiente
  • 08-31-2007 13:12

    • AOG
    • Contribuyente Top 200
    • Se unió el 08-31-2007
    • Envíos: 1
    • Puntos: 0

    Que protocolo/transporte utilizar en WCF

    Hola comunidad, estoy desarrollando una aplicación utilizando la tecnología WCF con n capas. Esta tecnología para mí es nueva y tengo algunas dudas:

    Mi aplicación va trabajar en varios ambientes, lo normal es en red local, habrá una parte de negocio que se accede con cliente windows (en red local) y otro con cliente página Web, en el caso de los pedidos (cliente que realizan pedidos a través de Web).

     Mi dudas son que protocolo/transporte usar con WCF, teniendo en cuenta que tengo que propagar credenciales usuario/password ya que la capa de negocio casi todos sus métodos cheque la autenticación y el rol del usuario autenticado.

    He estado haciendo pruebas y he utilizado el protocolo NetTcpBinding para clientes en red local y con un Host  tipo consola de momento. El resultado no me agrada demasiado, pues en formularios como artículos donde muestro datos del dicho artículo, tarifas y sus proveedores, ya optimizado, no va lo rápido que uno espera cuando se avanza por sus registros,  es decir, se nota que está en remoto, el cliente para conectar en red local con el Host me obliga enviar certificado X.509 con este protocolo, sino me deniega la conexión el Host, ¿habría posibilidad de no utilizar certificado para no instalar en todos los equipos cliente?, teniendo cuenta que debo de propagar las credenciales, quizás tanta protección ralentiza la comunicación ¿no?.

    También he probado el protocolo WSHttpBinding, para realizar la comunicación mediante dirección http\\www. (atraves de internet o intranet) y utilizando el mismo cliente windows y mismo  Host (tipo consula), bueno la comuncación sí que es lenta (no viable), no se si es por el tipo de protocolo, cliente o host.

    Que tipo de protocolo/transporte usar según mi situación para que vaya lo más optimizado posible, teniendo en cuenta que almenos tengo que propagar credenciales de tipo usuario/password.

    Configuración de archivo del Host:

        <endpoint address="net.tcp://localhost:1133/Servicios/mex"

                 contract=" Servicios.ServiceContracts.IArticulos"

                 binding="netTcpBinding"

                 bindingConfiguration="MiBindingTCP" />

     

    <netTcpBinding>

          <binding name="MiBindingTCP" maxReceivedMessageSize="5000000">

              <readerQuotas maxStringContentLength="2000000" />

              <security mode="Message" >

                <message clientCredentialType="UserName"  />

              </security>

         </binding>

    </netTcpBinding>

      <behavior name="BehaviorSeguridadAutorizacion" >

            <serviceDebug includeExceptionDetailInFaults="true"/>

            <serviceMetadata httpGetEnabled="true" />

            <serviceAuthorization principalPermissionMode="Custom">

            <authorizationPolicies>

                <add policyType="ServiceImplementation.CustomAutiruzacion, Servicios.ServiceImplementation"/>

                </authorizationPolicies>

              </serviceAuthorization >

              <serviceCredentials>

                <userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="ServiceImplementation.CustomUserNameValidator, Servicios.ServiceImplementation" />

                <serviceCertificate findValue="WCF" storeLocation="LocalMachine" storeName="My" x509FindType="FindBySubjectName" />

                      </serviceCredentials>

          </behavior>

    Un saludo, A. Ortega

    • Puntos de post: 0
Página 1 de 1 (1 elementos)
(c) DotNetClubs 2008
Ofrecido por Community Server (Commercial Edition)