Servicio WCF demasiado ocupado

¿Los servicios están funcionando, pero cuando la base de datos deja de funcionar, el grupo de aplicaciones termina deteniéndose?

En el lado del servicio, tenemos try / catch con Fault Execeptions para todo el código que se conecta a las bases de datos.

Estoy buscando consejos sobre cómo reducir este tipo de errores desde el control de los servicios, ya que no tenemos control sobre los servidores.

Hágame saber si se necesitan más detalles y actualizaré la publicación.

Proveedor personalizado del lado del cliente:

   public class ClientWCFProvider<TT> : IDisposable
    {

            private ChannelFactory<TT> channel;

            public TT WCF { get; set; }

            public ClientWCFProvider(string service)
            {
                channel = GetServiceChannel(service);
                WCF = channel.CreateChannel();
            }

            private ChannelFactory<TT> GetServiceChannel(string service)
            {
                 BasicHttpBinding serviceBinding = new BasicHttpBinding();
                //set the config on the bindings for timeouts etc.
                serviceBinding.MaxReceivedMessageSize = 105190152; 
                serviceBinding.MaxBufferSize = Convert.ToInt32(serviceBinding.MaxReceivedMessageSize);
                serviceBinding.OpenTimeout = new TimeSpan(0, 3, 0);
                serviceBinding.SendTimeout = new TimeSpan(0, 3, 0);


                EnvironmentDescriptor serviceEnvironment;
                EndpointAddress ServiceEndpoint;

                ... code to setup the endpoint


                ServiceChannel = new ChannelFactory<TT>(serviceBinding, ServiceEndpoint);

                return ServiceChannel;
    }
    public void Dispose()
        {
            ((IClientChannel)WCF).Close();
            channel.Close();
        }
}

Entonces los servicios se llaman así:

using(var x = new ClientWCFProvider<TT>("NameOfService"))
{
...
}

preguntado el 08 de noviembre de 11 a las 12:11

Me estoy perdiendo la pregunta. "Consejos sobre cómo reducir esto por mi parte". Qué es esto"? También llamar a Close () de esta manera es peligroso. Leer esta publicación stackoverflow.com/questions/573872/… -

Arreglé la pregunta. Solo estoy buscando más formas de controlar los errores de las áreas que puedo controlar. No tener acceso a los servidores significa que la depuración, etc. es más difícil. -

Está escribiendo código de cliente y le gustaría saber cómo reducir la cantidad de errores que devuelve un servicio cuando la base de datos falla ... ¿pero no controla el servicio? -

"No tenemos control sobre los servidores". No podemos ejecutar el rastreo y otros elementos en los servidores. Y no tenemos control de la configuración de IIS. -

@ErnieL: hemos tomado sus comentarios y nos hemos ido con esto:blog.davidbarrett.net/archive/2007/11.aspx -

1 Respuestas

La solución final, basada en ErnieL es esta: http://blog.davidbarrett.net/archive/2007/11.aspx

respondido 08 nov., 11:22

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.