Pregunta

Actualmente estoy construyendo una unión costumbre que recibe peticiones HTTP de una fuente diferente a la de un socket de escucha TCP. Cuando Access y abra un canal directamente, no hay problemas. Sin embargo, se producen problemas al intentar alojar mi unión en un punto final de una WebServiceHost.

he insertado los mensajes de depuración Console.WriteLine () en todas las funciones del código de la unión mi costumbre. Todo funciona bien hasta después de la función AlAbrir () de mi ChannelListener ha sido llamado. Posteriormente, el ServiceModel simplemente no quiere invocar el método OnAcceptChannel (). No hay excepciones, ningún mensaje de error; simplemente se cuelga allí y no llama a ninguna otra función de mi unión más. Me he comentado la salida de la aplicación en el código de abajo.

WebServiceHost host = new WebServiceHost(
    typeof(MyService), new Uri("http://localhost:80"));
host.AddServiceEndpoint(typeof(MyService), new MyWebHttpBinding(), "");
// BINDING CONSTRUCTOR
// BINDINGELEMENT CONSTRUCTOR
host.Open();
// BINDING: CreateBindingElements (multiple times)
// BINDINGELEMENT: Clone
// BINDINGELEMENT CONSTRUCTOR
// BINDINGELEMENT: CanBuildChannelListener
// BINDINGELEMENT: Clone
// BINDINGELEMENT CONSTRUCTOR
// BINDINGELEMENT: CanBuildChannelListener
// BINDINGELEMENT: Clone
// BINDINGELEMENT CONSTRUCTOR
// BINDINGELEMENT: Clone
// BINDINGELEMENT CONSTRUCTOR
// BINDINGELEMENT: Clone
// BINDINGELEMENT CONSTRUCTOR
// BINDINGELEMENT: BuildChannelListener
// CHANNELLISTENER CONSTRUCTOR
// BINDINGELEMENT: Clone
// BINDINGELEMENT CONSTRUCTOR
// BINDING: CreateBindingElements (multiple times)
// CHANNELLISTENER: OnOpen
// CHANNELLISTENER: OnOpen END (function completes properly. last output)

¿Alguien de ustedes saben lo que tengo que cambiar en mi solicitud de que el método se llama a OnAcceptChannel correctamente?

Saludos

¿Fue útil?

Solución

¿Está un registro de llamadas a la versión asíncrona de los métodos ChannelListener? Me parece recordar ServiceHost intentando llamar OnBeginAcceptChannel normalmente en lugar de OnAcceptChannel.

Además, estás conectando un controlador para el evento ServiceHost.Faulted? Podría ser que se critica y no necesariamente va a obtener una excepción externa durante la apertura del huésped.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top