Im essayant d'obtenir une image du service WCF
j'ai une fonction OperationContract qui renvoie une image au client,
mais quand je l'appelle du client i obtenir cette exception: The socket connection was aborted. This could be caused by an error processing your message or a receive timeout being exceeded by the remote host, or an underlying network resource issue. Local socket timeout was '00:00:59.9619978'.
retour Image de méthode OperationContract (service WCF)
client:
private void btnNew_Click(object sender, EventArgs e)
{
picBox.Picture = client.GetScreenShot();
}
Service.cs:
public Image GetScreenShot()
{
Rectangle bounds = Screen.GetBounds(Point.Empty);
using (Bitmap bmp = new Bitmap(bounds.Width,bounds.Height))
{
using (Graphics g = Graphics.FromImage(bmp))
{
g.CopyFromScreen(Point.Empty, Point.Empty, bounds.Size);
}
using (MemoryStream ms = new MemoryStream())
{
bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
return Image.FromStream(ms);
}
}
}
IScreenShot Interface:
[ServiceContract]
public interface IScreenShot
{
[OperationContract]
System.Drawing.Image GetScreenShot();
}
alors pourquoi est que cela se produise et comment puis-je résoudre ce problème?
Vous voudrez peut-être jeter un oeil à WCF [grandes quantités de données et Streaming] (http://msdn.microsoft.com/en-us/library/ms733742.aspx). –
@JoshuaDrake j'ai déjà lu à ce sujet, mais je ne comprenais pas tout, j'ai seulement compris que je devrais utiliser Streamed au lieu de tamponné si je veux transférer une grande quantité de données! mais est-ce, je change tamponné à streamed alors j'ai eu l'image? –
Pouvez-vous essayer de changer le format de l'image en jpg plutôt qu'en png. Parfois, le streaming png a des problèmes. – Rajesh