Quiero verificar la disponibilidad del servicio web de WCF. El servicio i.c está arriba o abajo a través del código C#. ¿Cómo lograr eso?verifique la disponibilidad del servicio web de WCF
Respuesta
Cuando llama al Client.Open
si está abajo, debe lanzar una excepción que puede atrapar.
Lo que prefiero hacer es implementar un método que devuelva un booleano llamado Ping. El código básicamente solo hace return true;
por lo que regresa lo más rápido posible. En el lado del cliente lo llamo y atrapo excepciones, si obtengo alguna, entonces sé que el servicio web está caído.
Puede extender el patrón para hacer cosas como PingCheckDB o PingCheckX que pueden hacer una ejecución de prueba falsa/de muestra para habilitar/deshabilitar la funcionalidad en el cliente según lo que está disponible.
Cualquier código de muestra, por favor. Gracias –
@ Alhmabra el método se vería como public bool Ping() { return true; } Realmente no es el método más interesante. –
Open() no arroja una excepción cuando desactivo la red. – nurettin
Para explicar la respuesta anterior: la única manera de determinar si un servicio está "disponible" es primero determinar qué quiere decir con "disponible". Por ejemplo, un servicio que depende de un recurso externo como una base de datos puede estar perfectamente disponible, pero si no se puede acceder a la base de datos, entonces el servicio estará disponible pero inútil.
También debe preguntar qué va a hacer con la información sobre la disponibilidad. En particular, qué pasaría si decidiera que el servicio estaba "disponible" aún, cuando lo llame, encontrará que no está realmente "disponible". Un ejemplo sería si el servicio anterior estaba disponible y la base de datos estaba disponible, pero había un procedimiento almacenado particular que siempre fallaría. ¿El servicio está "disponible" en este caso? ¿Qué tan malo sería si usted indicó que estaba disponible, pero este procedimiento almacenado falló?
En muchos casos, lo mejor es simplemente seguir adelante y realizar las llamadas al servicio web, y luego manejar cualquier excepción. Si ha validado los parámetros que está enviando al servicio, desde el punto de vista del usuario final, cualquier falla del servicio equivale a que el servicio no esté disponible.
No está disponible para su uso con éxito, usted ve.
Esto es lo que estoy usando y funciona muy bien. Y ServiceController vive en el espacio de nombres 'System.ServiceProcess' si desea utilizar una declaración Using en la parte superior para calificarla.
try
{
ServiceController sc = new ServiceController("Service Name", "Computer's IP Address");
Console.WriteLine("The service status is currently set to {0}",
sc.Status.ToString());
if ((sc.Status.Equals(ServiceControllerStatus.Stopped)) ||
(sc.Status.Equals(ServiceControllerStatus.StopPending)))
{
Console.WriteLine("Service is Stopped, Ending the application...");
Console.Read();
EndApplication();
}
else
{
Console.WriteLine("Service is Started...");
}
}
catch (Exception)
{
Console.WriteLine("Error Occurred trying to access the Server service...");
Console.Read();
EndApplication();
}
Utilizo el siguiente código. Es muy sencillo y funciona ...
public bool IsServiceRunning()
{
try
{
System.Net.WebClient wc = new System.Net.WebClient();
string s = wc.DownloadString(new Uri("http://localhost:27777/whatever/services/GatherDataService?wsdl"));
}
catch (Exception ex)
{
return false;
}
return true;
}
acaba de tomar su uri punto final y añadir el? WSDL
- 1. WCF - tener cheque cliente para la disponibilidad del servicio
- 2. ¿Es un servicio WCF un servicio web?
- 3. Alojamiento del servicio WCF dentro del proyecto web
- 4. WCF Servicio Web o API
- 5. WCF Certificate Chain, verifique programáticamente
- 6. Importación de metadatos del servicio web ASMX al WCF Endpoint
- 7. Prueba de un servicio web de WCF
- 8. WCF Servicio web detrás del proxy inverso público
- 9. Cómo exponer mi colección del servicio web (WCF)
- 10. Reutilización de clientes del servicio WCF
- 11. Configuración personalizada del servicio WCF
- 12. Problema de configuración del servicio web
- 13. Reemplazar la biblioteca del servicio WCF sin reiniciar el servicio
- 14. devolver xdocument del servicio wcf
- 15. Firma de mensajes SOAP utilizando el certificado X.509 del servicio WCF al servicio web Java
- 16. InvalidOperationException durante la creación de la instancia del servicio web wcf
- 17. Alta disponibilidad
- 18. Tiempo de espera del servicio WCF
- 19. Breve disponibilidad del editor
- 20. Alojamiento del servicio WCF en el servicio de Windows
- 21. trabajando con par de servidores RabbitMQ de alta disponibilidad a través de WCF
- 22. Pasar credenciales de un servicio wcf a otro servicio wcf
- 23. ¿Diferencia entre el servicio de ventana, la aplicación de servicio WCF y la aplicación de servicio web ASP.NET?
- 24. Servicio web de SAP desde .NET a través de WCF
- 25. ¿Cómo entender la "disponibilidad" del teorema CAP?
- 26. servicio web WCF error de serialización - que regresan valores nulos
- 27. Servicio web WCF Autenticación basada en grupos AD
- 28. AspNetCompatibilityRequirements hace que el servicio web de WCF bloquee
- 29. WCF servicio web cambio de nombre WSDL y targetNamespace
- 30. Tamaño del búfer en el servicio WCF
cualquier solución final con el código fuente completo? – Kiquenet