我正在尝试解决某些请求,这些请求正在进入我们专门为客户设置的WCF服务调用,该客户声称他们只能在请求正文中发送带有表单编码参数的HTTP POST。
为了解决这个问题,我们设置了一个如下所示的API调用:
[OperationContract]
[WebInvoke(UrlTemplate = "/CustomCall")]
CustomCallResponse CustomCall(Stream input)
我们能够使用fiddler进行测试,并使用内容类型:application / x-www-form-urlencoded 并将帖子数据放入请求正文中 p>
param1=value1¶m2=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 的预期参数时,我们不知道他们正在做什么或如何重现此问题。
关于可能导致此问题的任何想法,或者如何尝试重现此问题以获得相同的错误,以便我可以处理并修复它?