WCF服务无法从移动客户端解码UTF-8

时间:2015-05-18 13:31:28

标签: c# wcf utf-8

我有一个需要支持UTF-8编码查询的WCF服务。接口定义的示例如下所示:

  [OperationContract]
    [WebInvoke(Method = "POST",
        ResponseFormat = WebMessageFormat.Json,
        BodyStyle = WebMessageBodyStyle.Wrapped,
        UriTemplate = "GetLocationID")]
    List<GetLocationIdResult> GetLocationID(Stream locationIDparams);

端点定义使用webHttpBinding,如下所示:

<services>
  <service behaviorConfiguration="External" name="Customer.Customer">
    <endpoint address="" behaviorConfiguration="webBehavior" binding="webHttpBinding" contract="Customer.ICustomer"/>
    <endpoint contract="IMetadataExchange" binding="mexHttpBinding" address="mex"/>
  </service>
</services>

当我从基于.NET的Web客户端或Fiddler发送带有希伯来语单词的查询时,查询参数会正确读取。从移动客户端(Android或iOS)发送,参数未正确解码,但显示为问号。

很容易说客户端配置错误,但我需要解决问题,而不是责备。我的配置中有什么东西可以解决问题吗?我没有客户端可以解决的调试服务器,查询必须转到客户的服务器,我可以通过写入事件管理器进行调试(任何人都记得printf?)。我可以使用这些工具来帮助纠正客户端的配置吗?

1 个答案:

答案 0 :(得分:0)

我建议激活WCF跟踪和消息记录,如下所述:

https://msdn.microsoft.com/en-us/library/ms751526%28v=vs.110%29.aspx