Im пытается получить изображение от службы WCF
У меня есть функция OperationContract, которая возвращает изображение к клиенту,
но когда я называю его от клиента я получаю это исключение: 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'.
возвращения изображение из метода OperationContract (службы WCF)
Клиент:
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 Интерфейс:
[ServiceContract]
public interface IScreenShot
{
[OperationContract]
System.Drawing.Image GetScreenShot();
}
так почему это происходит и как это исправить?
Вы можете захотеть взглянуть на WCF [больших объемов данных и потокового] (http://msdn.microsoft.com/en-us/library/ms733742.aspx). –
@JoshuaDrake Я ранее читал об этом, но я не мог все понять, я только понял, что я должен использовать Streamed вместо буферизации, если я хочу передать большой объем данных! но что это, я меняю буферизацию на потоковое, тогда я получил изображение? –
Можете ли вы попытаться изменить формат изображения на jpg, а не на png. Иногда потоки png имеют проблемы. – Rajesh