2009-02-17 15 views
5

Actualmente estoy trabajando en un proyecto pequeño, donde tengo que enviar un archivo potencialmente grande a través de Internet.Tamaños y tiempos de espera en el contrato de servicio de transmisión en WCF

Después de un debate, decidí ir con la opción de transmisión en lugar de un enfoque de fragmentación. Los archivos pueden ser muy grandes, realmente no quiero especificar un límite superior exacto, 2GB tal vez 4GB, quién sabe.

Naturalmente esto puede llevar mucho tiempo. De nuevo, realmente no quiero tener un tiempo de espera. Simplemente toma el tiempo que lleva, no importa.

Mientras hurgaba intentando diferentes archivos de diferentes tamaños, lentamente, paso a paso, afinaba las propiedades de mi BasicHttpBinding. Me pregunto si los valores que se me ocurren son básicamente correctos, o si son totalmente malvados.

transferMode="Streamed" 
sendTimeout="10675199.02:48:05.4775807" 
receiveTimeout="10675199.02:48:05.4775807" 
openTimeout="10675199.02:48:05.4775807" 
closeTimeout="10675199.02:48:05.4775807" 
maxReceivedMessageSize="9223372036854775807" 

Esto simplemente no se siente bien de alguna manera, estos son solo los valores máximos posibles para cada estructura de datos subyacente. Pero no sé qué más hacer.

Así que de nuevo:

¿Es esta básicamente el enfoque correcto? ¿O no comprendí completamente y mal uso el marco aquí?

Gracias

Respuesta

2

Bueno, un enfoque más natural podría ser la de enviar el archivo en una secuencia en trozos de tamaño medio, con un mensaje final para cometer; esto también hace posible reanudar desde el error. Es posible que exista un ligero problema de DOS con números totalmente abiertos ...

0

Ya tengo un problema con la transmisión cuando la conexión entre el cliente WCF y el servidor pasa por la VPN. Si está interesado, lea más en this thread.

Si la transmisión es lo suficientemente grande como para transmitirse durante más de un minuto, se produce una excepción.

Cuestiones relacionadas