Tengo muchos servicios web ejecutándose en mi proyecto, pero algo extraño ha estado ocurriendo durante bastante tiempo. Mis servicios se cuelgan ocasionalmente sin motivo alguno con un mensaje de error "El objeto de comunicación, System.ServiceModel.Channels.ServiceChannel, no se puede utilizar para la comunicación porque está en estado Faulted". Esto generalmente ocurre cuando ejecuto la aplicación a primera hora de la mañana, después de lo cual ocurren con menos frecuencia. ¿Alguna idea sobre qué podría estar causando este error?WCF at Services estado fallido
Respuesta
Esto suena como un tiempo de espera combinado con no manejar los servicios defectuosos.
Tarda más en ejecutarse por la mañana ya que el código debe compilarse JIT, tal vez también la base de datos necesita almacenar en caché los datos y los planes de consulta.
Aquí es una manera de conseguir que el cliente WCF para limpiar después de sí mismo http://nimtug.org/blogs/damien-mcgivern/archive/2009/05/26/wcf-communicationobjectfaultedexception-quot-cannot-be-used-for-communication-because-it-is-in-the-faulted-state-quot-messagesecurityexception-quot-an-error-occurred-when-verifying-security-for-the-message-quot.aspx
pero no estoy usando "usar "bloques. – Farax
Todavía tiene que cerrar el servicio después de haberlo usado, y debe cancelar el servicio si está en estado de error –
De hecho, después de quitar mi bloque de USO pude ver el error real. 10x –
Si un servicio WCF lanza una FaultException
, el cliente tendrá su estado cambia a CommunicationState.Faulted
. Si a continuación, intenta utilizar este objeto cliente para llamar a otra operación de servicio, obtendrá el error
"El objeto de comunicación, System.ServiceModel.Channels.ServiceChannel, no se puede utilizar para la comunicación, ya que está en estado de Falla ".
También puede obtener este error si intenta llamar al método Close()
en un cliente con errores, no lo recuerdo.
Puede verificar el estado de su objeto cliente marcando la propiedad State
. Si desea cerrar su cliente correctamente (lo cual debería estar haciendo), debe llamar al método Abort()
si el cliente está en el estado Faulted
y Close()
si el cliente se encuentra en cualquier otro estado.
Tipo de derrotar el propósito de 'usar', ¿no? WCF nunca deja de sorprenderme por lo mal diseñado que está. –
- 1. .NET RIA Services/WCF Services
- 2. WCF/WCF Data Services/Servicios WCF RIA
- 3. Ria Services vs WCF Dataservices
- 4. ASP.net Web Services versus WCF
- 5. WCF Data Services: Mocking OperationContext
- 6. Tiempos de espera WCF Services
- 7. error de solicitud con WCF Data Services
- 8. diferencia entre WCF Services y Web Services y REST Service
- 9. diferencia entre el API Web WCF y WCF Data Services
- 10. WCF Data Services Opciones de seguridad
- 11. WCF REST vs. ADO.NET Data Services
- 12. WCF Data Services o Entity Framework
- 13. Colección existe Criteria en WCF Data Services
- 14. WCF Ria Services ChangeSet.GetOriginal(): ¿Cómo funciona?
- 15. ¿Cuán caros son ??? - Hosted WCF Services?
- 16. Manejo de excepciones con WCF Data Services
- 17. Serializador JSON.NET para WCF REST Services
- 18. Cruise Control .NET time build gasta en estado fallido
- 19. javax.naming.CommunicationException: enlace simple fallido
- 20. Diferencia entre WCF Service, WCF RIA Services y WCF Data Service
- 21. ¿Se pueden implementar WCF Data Services o RIA Services con NHibernate?
- 22. Reporting Services 2008: "Estado HTTP 401: no autorizado" Problema
- 23. ¿Cómo usar WCF RIA SERVICES con la aplicación WPF?
- 24. Cómo deshabilitar esquemas de autenticación de WCF Data Services
- 25. Cómo manejar json DateTime devuelto por WCF Data Services (OData)
- 26. configuración de WCF con <services> etiqueta
- 27. Rails Comando PDFKit fallido
- 28. encriptación web.config error fallido
- 29. SOA Services Testing
- 30. Reprogramar un trabajo at
¿Has probado el trazado de WCF? –
¿Este error proviene del código que consume un servicio WCF, o del propio servicio? –
@Ladislav: No, todavía no. No estoy seguro del trazado de WCF. ¿Son buenos tutoriales para que me apunten? @ Graham: Esto proviene básicamente del código que consume el servicio WCF – Farax