WCF预期元素'流',遇到元素名称'二进制'

时间:2013-12-29 15:59:58

标签: c# wcf stream datacontractserializer datacontract

我正在尝试解决某些请求,这些请求正在进入我们专门为客户设置的WCF服务调用,该客户声称他们只能在请求正文中发送带有表单编码参数的HTTP POST。

为了解决这个问题,我们设置了一个如下所示的API调用:

[OperationContract]
[WebInvoke(UrlTemplate = "/CustomCall")]
CustomCallResponse CustomCall(Stream input)

我们能够使用fiddler进行测试,并使用内容类型:application / x-www-form-urlencoded 并将帖子数据放入请求正文中 p>

param1=value1&param2=value2

正如我所说,这对我们的测试起作用。

我们的日志记录系统在发布到我们的系统时会发现错误,它会给我们以下错误消息:

Message: Expecting element 'Stream' from namespace  'http://schemas.datacontract.org/2004/07/System.IO'.. Encountered 'Element' with name 'Binary', namespace ''. 
StackTrace: System.Runtime.Serialization.SerializationException: Expecting element 'Stream' from namespace 'http://schemas.datacontract.org/2004/07/System.IO'.. Encountered 'Element' with name 'Binary', namespace ''. 
at System.Runtime.Serialization.DataContractSerializer.InternalReadObject(XmlReaderDelegator xmlReader, Boolean verifyObjectName, DataContractResolver dataContractResolver)

我已经足够使用WCF,我已多次看到此消息,并且通常与合同不匹配有关。但是,当我们尝试使用此 Stream 的预期参数时,我们不知道他们正在做什么或如何重现此问题。

关于可能导致此问题的任何想法,或者如何尝试重现此问题以获得相同的错误,以便我可以处理并修复它?

0 个答案:

没有答案