繁体   English   中英

WCF Rest Webservice with stream

[英]WCF Rest Webservice with stream

我感兴趣地阅读了以下文章,因为它是我遇到的问题的完全复制品(并且让我疯狂)“对于操作中的请求,UploadFile是一个流,操作必须有一个类型为Stream的参数。” - http://social.msdn.microsoft.com/Forums/en/wcf/thread/80cd26eb-b7a6-4db6-9e6e-ba65b3095267

我几乎遵循了我找到的所有代码/示例,但仍无法解决此错误 - http://blogs.msdn.com/b/carlosfigueira/archive/2008/04/17/wcf-raw-programming-model -接收-任意data.aspx

我想要实现的是使用标准的文件名/流参数从Android设备发布一个图像(jpeg / png)。很可能它是一个简单的东西我错误配置,误解或遗漏但我需要有一个概念证明的解决方案。

 public interface IConXServer
    {
    [OperationContract]
    [WebInvoke(UriTemplate = "UploadImage({fileName})", Method="POST")]
    void UploadImage(string fileName, Stream imageStream);
    }

 public class ConXWCFServer : IConXServer
    {
    public void UploadImage(string fileName, Stream imageStream)
       {
       //implement image save
       }
    }

web.config设置 - >

<standardEndpoints>
   <webHttpEndpoint>
       <standardEndpoint name="webHttpEndpoint" helpEnabled="false"/>
   </webHttpEndpoint>
</standardEndpoints>

<bindings>
    <webHttpBinding>
        <binding name="webHttpBinding" transferMode="Streamed"/>
    </webHttpBinding>
</bindings>

<behaviors>
    <endpointBehaviors>
        <behavior name="webHttpBehavior">
            <webHttp/>
        </behavior>
    </endpointBehaviors> 
    <serviceBehaviors>
        <behavior>
            <serviceMetadata httpGetEnabled="false"/>
            <serviceDebug includeExceptionDetailInFaults="true"/>
            <serviceThrottling maxConcurrentCalls="2147483647"  maxConcurrentSessions="2147483647"/>
        </behavior>
    </serviceBehaviors>
</behaviors>

使用vs2010和IIS Express。 如果我注释掉上述方法,则所有其他方法都可以工作并返回数据以及wsdl查询

关心并提前感谢Kern

您提到WSDL,这使我相信您在尝试浏览服务的元数据端点时遇到错误。 因此,首先,WSDL和REST不会一起使用,因此您不应期望将它用于REST接口。 忘记服务元数据概念甚至存在于REST世界中。

接下来虽然REST的webHttpBinding支持Stream body参数前面的参数,但其他绑定不支持,并且必须有单个Stream参数或带有标题和流体的消息合约。

所以,最后,问题不在于REST webHttpBinding,我敢打赌它工作得很好。 如果不是,我会非常震惊,因为你没有做任何不应该在该部门工作的事情。 问题是您期望元数据端点为您定义的服务合同生成WSDL,而这只是不受支持。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM