Utilizo netTcpBinding y transmisión para enviar archivos de un servidor a otro como se describe en this codeproject article, como entiendo En wcf cuando queremos enviar stream debemos crearlo y devolverlo como contrato de mensaje, la pregunta es ¿cómo obtener el final del envío de archivos? porque quiero mover el archivo de la bandeja de entrada a la bandeja de salida cuando el archivo envía la garantía completadaCómo eliminar un archivo después del final de la transmisión wcf
Respuesta
He encontrado una gran solución en este blog si alguien va a necesitar en el futuro
OperationContext clientContext = OperationContext.Current;
clientContext.OperationCompleted += new EventHandler(delegate(object sender, EventArgs args)
{
if (fileStream != null)
fileStream.Dispose();
});
Cuando el segundo servidor ha terminado de recibir el archivo del primer servidor, puede llamar a otro método de servicio web para confirmar que obtuvo el archivo. En ese punto, puede mover el archivo de la bandeja de entrada a la bandeja de salida con la garantía de que el otro servidor lo recibió.
buena, pero lo que si el primer servidor obtener el archivo, y perdieron la conexión cuando se trata de pedir para mover a la bandeja de entrada? que el cliente recibirá el archivo dos veces –
Tiene razón, cuando diseña un sistema distribuido confiable, necesita tener en cuenta todos los tipos de escenarios donde se pierden mensajes, los servidores bajan, etc. Deberá idear un diseño que maneje esta situación y se asegura de no crear archivos duplicados. No creo que haya nada en WCF que te ayude a hacer esto automáticamente. – Saeed
Supongo que encontré la solución, verifique mi respuesta –
- 1. Eliminar nueva línea del final del archivo
- 2. Response.TransmitFile y elimínelo después de la transmisión
- 3. ¿Cómo eliminar un sufijo del final de la cadena?
- 4. Eliminar llamada del registro de llamadas después del final de la llamada
- 5. bison final del archivo
- 6. Cómo utilizar PowerShell para eliminar espacio del final de una línea en un archivo de texto
- 7. Eliminar archivo después de cargar
- 8. ¿Qué es un "punto final" en WCF?
- 9. Protección del punto final del servicio WCF con autenticación personalizada
- 10. ¿Cómo saltar al final del contenido pegado después de pegar?
- 11. ¿Cómo eliminar un elemento xml del archivo?
- 12. Cómo modificar programáticamente la configuración de la dirección del punto final WCF app.config?
- 13. WCF y solicitudes y respuestas de transmisión
- 14. Eliminar caracteres del final de un String Scala
- 15. Escribiendo al final del archivo
- 16. ¿Cómo abortar una secuencia del servicio WCF sin leerla hasta el final?
- 17. powershell: eliminar el texto del final de la cadena
- 18. Ningún archivo o directorio después de eliminar un subdirectorio duplicado
- 19. eliminar dot al final del texto
- 20. Leer hasta el final de la transmisión en haskell
- 21. cómo eliminar un archivo?
- 22. Eliminar referencias de PDB del archivo publicado
- 23. ¿Cómo eliminar "," al final del texto en php?
- 24. ¿Cuándo puedo eliminar un archivo después de usarlo en Response.WriteFile()?
- 25. Cómo eliminar caracteres del final del campo en la base de datos MySql
- 26. C# Eliminar un archivo .ZIP después de descomprimir
- 27. Punto final del cliente WCF: SecurityNegotiationException sin <dns>
- 28. jQuery: eliminar elementos después del actual
- 29. número de placa del iPhone después de eliminar la aplicación
- 30. Python: HTTP Publique un archivo grande con la transmisión
Esta fue la solución que pude cruzar y me pareció genial al principio. Sin embargo, se ejecuta si el cliente ha copiado correctamente la transmisión o no. Esto no es un problema si solo estás tratando de eliminar los recursos (de hecho, es perfecto para eso). Pero es un problema si está moviendo el archivo o, lo que es peor, eliminándolo. – Jeff
Sí, tienes razón @Jeff, encontré el último, ¿sabías otra forma de hacerlo? –