我正在尝试将图像发送到wcf以使用OCR。 现在,我成功地将我的图像转换为byte []并使用wcf将其发送到服务器。不幸的是,它适用于大小<16Kb的数组,不适用于数组&gt; 17Kb。
我已经在服务器大小的web.config中将readerQuotas
和maxArrayLength
设置为其最大大小。
你知道如何将大数据发送到wcf服务器,或者任何库直接在wp7上使用OCR吗?
答案 0 :(得分:4)
如果所有其他方法都失败了,请以16Kb的片段发送,然后发送“全部完成”消息(必要时重新组装)
答案 1 :(得分:1)
我不知道这是否适用于WP7,但是使用WCF,您还可以使用流来上传更多数据。
答案 2 :(得分:1)
如果它不是太大的话,怎么用HTTP帖子发送它?或者更改web服务以便接受blob? (当前数组限制是W3C规范中数组数据类型的限制)
答案 3 :(得分:1)
最终解决了。 您必须更新web.config以允许服务器接收大数据。然后你必须使用你的WCF中的Stream类型和WP7中的byte []类型。类型将匹配,WCF或WP7将同意接收和发送它。
在WCF中:
public string ConvertImgToStringPiece(Stream img)
{
//.....
}
在WP7中:
Service1Client proxy = new Service1Client();
proxy.ConvertImgToStringPieceCompleted += new EventHandler<ConvertImgToStringPieceCompletedEventArgs>(proxy_ConvertImgToStringPieceCompleted);
proxy.ConvertImgToStringPieceAsync(b); //b is my Byte[], more thant 17Kb.
答案 4 :(得分:0)
您可以尝试使用WCF会话。要记住的关键是WCF中的会话与我们用于Internet编程的常规会话不同。它基本上是一个方法的调用,它启动会话,任何临时调用,然后是结束会话的最后一个。您可以进行一次服务调用,启动会话,发送图像块,然后调用最后一个关闭会话的服务,并返回您需要的任何内容。