WCF Rest Webservice with stream
我感兴趣地阅读了以下帖子,因为它是我遇到的问题的精确复制品(并让我疯了)
“对于操作中的请求,UploadFile是一个流,操作必须有一个类型为Stream的参数.” – http://social.msdn.microsoft.com/Forums/en/wcf/thread/80cd26eb-b7a6-4db6-9e6e-ba65b3095267 我几乎遵循了我找到的所有代码/示例,但仍无法解决此错误 – 我想要实现的是使用标准的文件名/流参数从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查询 提前问候并表示感谢 解决方法
您提到WSDL,这使我相信您在尝试浏览服务的元数据端点时遇到错误.因此,首先,WSDL和REST不会一起使用,因此您不应期望将它用于REST接口.忘记服务元数据概念甚至存在于REST世界中.
接下来虽然REST的webHttpBinding支持Stream body参数前面的参数,但其他绑定不支持,并且必须有单个Stream参数或带有标题和流体的消息合约. 所以,最后,问题不在于REST webHttpBinding,我敢打赌它的工作正常.如果不是,我会非常震惊,因为你没有做任何不应该在该部门工作的事情.问题是您希望元数据端点为您定义的服务契约生成WSDL,而这只是不受支持. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |