Estoy tratando de conectar la Unidad a un Servicio WCF de la Biblioteca con un Comportamiento de Servicio.

Necesito un simple bare bones ejemplo de un Comportamiento de Servicio.

Todo lo que quiero hacer es configurar mi COI Unidad de Contenedor en el inicio del Servicio WCF.

NOTA: no estoy utilizando una Aplicación de Servicio de WCF. Así que no tengo acceso a NINGUNA de las ASP.NET maneras de hacer esto. A partir de un concepto de punto de vista, un servicio, un comportamiento que parece el más elegante método. Pero no sé cómo configurar una (¿qué código que necesito, se puedo hacer la actualización de los archivos de configuración, etc).

OriginalEl autor Vaccano | 2011-06-30

1 Comentario

  1. 6

    Si quieres controlar la creación de instancias del servicio WCF de los casos, usted necesitará un comportamiento de servicio para conectar un IInstanceProvider para que. Usted puede encontrar un simple proveedor de la aplicación (para un contenedor de IoC) en el post acerca de que la interfaz de http://blogs.msdn.com/b/carlosfigueira/archive/2011/05/31/wcf-extensibility-iinstanceprovider.aspx.

    Por los comentarios, si todo lo que usted necesita es un simple IServiceBehavior, aquí se muestra un ejemplo de aplicación puede utilizar.

    public class StackOverflow_6539963
    {
        public class MyServiceBehaviorAttribute : Attribute, IServiceBehavior
        {
            public void AddBindingParameters(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase, Collection<ServiceEndpoint> endpoints, BindingParameterCollection bindingParameters)
            {
            }
    
            public void ApplyDispatchBehavior(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase)
            {
                Console.WriteLine("In MyServiceBehaviorAttribute.ApplyDispatchBehavior");
                //do whatever initialization you need
            }
    
            public void Validate(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase)
            {
            }
        }
        [ServiceContract]
        public interface ITest
        {
            [OperationContract]
            string Echo(string text);
        }
        [MyServiceBehavior]
        public class Service : ITest
        {
            public string Echo(string text)
            {
                return text;
            }
        }
        public static void Test()
        {
            string baseAddress = "http://" + Environment.MachineName + ":8000/Service";
            ServiceHost host = new ServiceHost(typeof(Service), new Uri(baseAddress));
            host.AddServiceEndpoint(typeof(ITest), new BasicHttpBinding(), "");
            host.Open();
            Console.WriteLine("Host opened");
    
            Console.Write("Press ENTER to close the host");
            Console.ReadLine();
            host.Close();
        }
    }
    A menos que yo pierda mi opinión, esta es una manera de obtener el Servicio WCF bajo prueba. Así que este incendios en cada «Instancia» de la creación. (IInstanceProvider). Necesito una manera de fuego sólo una vez al inicio. No estoy realmente interesado en el Servicio WCF ahora. Yo sólo quiero ser capaz de init mi Contenedor de IOC en el arranque (Pero voy a ser utilizada por mis objetos de la Capa Empresarial, no el Servicio WCF Objetos.
    Lo que yo veo. Está usted aloja su servicio en IIS (es decir, con un .svc archivo)? Si es así, usted todavía puede conectarse a la global.asax Application_Start. Si no estás alojado en IIS (es decir, usted es anfitrión de ti mismo), entonces usted puede inicializar el Coi antes de iniciar el servicio de host.
    Tanto las buenas maneras de ir. Sin embargo, debo de ser el anfitrión de agnóstico. (Mi equipo framework que todavía está trabajando en la solución de hosting para mis servicios), Así que estoy buscando un WCF solución que funcione. He encontrado información acerca de IServiceBehavior y ApplyDispatchBehavior que parece hacer lo que quiero, pero es difícil encontrar ejemplos.
    Ok, he publicado un ejemplo simple de un IServiceBehavior. Si desea obtener más información acerca de él, usted puede encontrar en blogs.msdn.com/b/carlosfigueira/archive/2011/03/22/…
    Dulce! Perfecto! Gracias por lo mucho.

    OriginalEl autor carlosfigueira

Dejar respuesta

Please enter your comment!
Please enter your name here