Haciendo pruebas esta mañana he mirado como hacer un servicio en WCF por Streaming y es bastante sencillo.
Lo que debemos hacer es configurar nuestro servicio modificando su binding en el Web.Config
<bindings>
<basicHttpBinding>
<binding name="HttpStreaming" maxReceivedMessageSize="67108864"
transferMode="Streamed"/>
</basicHttpBinding>
</bindings>
Una vez que lo tengamos ya podemos hacer que nuestras operaciones devuelvan o reciban un objeto de tipo Stream. Por un lado modificamos el contrato de nuestro servicio:
[ServiceContract]
public interface IService1
{
[OperationContract]
Stream GetData();
}
Y por otro lado el método.
public class Service1 : IService1
{
public Stream GetData()
{
StringBuilder sb = new StringBuilder();
for (long i = 0; i < 10; i++)
{
sb.AppendLine("Prueba" + i.ToString());
}
var stream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(sb.ToString()));
return stream;
}
}
Con esto en el cliente también recibiremos un Stream y con un StreamReader podríamos leer su contenido.
Espero sea útil.
Sea el primero en calificar este post
- Currently 0/5 Stars.
- 1
- 2
- 3
- 4
- 5