是否有可能将Stream作为WCF数据服务操作的参数?

问题描述:

请注意这个问题是特定于WCF数据服务而不是正常的Wcf服务。是否有可能将Stream作为WCF数据服务操作的参数?

我试图上传文件到服务没有任何运气。

只要我添加以下代码:

[WebInvoke(Method = "POST")] 
public void UploadPic(Guid id, Stream fileContents) 
{ 
    myImageSaver.SaveImageFromStream(fileContents); 
} 

我的整个数据服务崩溃。我无法查询任何实体集。我刚刚获得蓝色WCF屏幕的死亡。

这是不可能通过一个流作为prameter到服务操作,只有原始类型的支持作为参数传递给服务操作。在WCF数据服务中支持流的正确方式是使用MLE/MR功能。看看这个博客系列,了解如何实现此类服务的详细演练: http://blogs.msdn.com/b/astoriateam/archive/2010/08/04/data-services-streaming-provider-series-implementing-a-streaming-provider-part-1.aspx

+0

它太复杂了:( – 2011-03-20 22:12:50

是的,它是可能的,在这里看到的例子:http://forums.asp.net/t/1376821.aspx/1

+0

您的回答没有帮助。请注意我的第一条评论。我不是在问休息服务,我在问.net 4.0 WCF数据服务。 – 2011-03-20 19:12:21

+0

是的,但是您使用的WebInvoke属性是REST的WebHttpBinding的一部分。 – 2011-03-20 19:55:33

+0

是的,但我做错了:)。它不工作。我希望有人可以发布如何使用wcf数据服务进行图像上传的示例。 – 2011-03-20 20:18:21