【问题标题】:WCF GET returning XML instead of JSON on serverWCF GET 在服务器上返回 XML 而不是 JSON
【发布时间】:2015-07-02 21:08:01
【问题描述】:

我有一个定义了 webHttpBinding 的 WCF 服务。该接口只有一个方法:

[OperationContract(Action = "*")]
    [WebGet(UriTemplate = "/",RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
    Stream GetServerInfo();

返回带有编码 JSON 的流:

WebOperationContext.Current.OutgoingResponse.Headers.Add("Access-Control-Allow-Origin", "*");

        ServerData r = ServerData.Instance;
        r.upTime = (DateTime.Now - r._startupTime).ToString(@"dd\.hh\:mm\:ss");
        using (Process proc = Process.GetCurrentProcess())
        {
            r.usedMemory = ((double)proc.PrivateMemorySize64) / 1024 / 1024;
        }
        r.activeSessions = getServiceData().Count();
        string jsCode = "displayData" + "("+
            new JavaScriptSerializer().Serialize(r)
            +")";
        WebOperationContext.Current.OutgoingResponse.ContentType = "application/javascript";

        Console.WriteLine(jsCode);
        return new MemoryStream(Encoding.UTF8.GetBytes(jsCode));

在我的开发 PC 上使用时,它工作正常。我觉得:

displayData({"_startupTime":"\/Date(1435867525056)\/","serverVersion":"1.0.0.8","startUpTime":"2. 7. 2015 22:05:25","acceptedConnections":0,"upTime":"00.00:00:00","usedMemory":21.265625,"activeSessions":0})

但是,在部署到远程服务器后,我只能得到以下响应,并且我想得到一个 JSON:

<GetServerInfoResponse xmlns="http://tempuri.org/"><GetServerInfoResult>ZGlzcGxheURhdGEoeyJfc3RhcnR1cFRpbWUiOiJcL0RhdGUoMTQzNTg2ODUwMjc5NClcLyIsInNlcnZlclZlcnNpb24iOiIxLjAuMC44Iiwic3RhcnRVcFRpbWUiOiI3LzIvMjAxNSAxOjIxOjQyIFBNIiwiYWNjZXB0ZWRDb25uZWN0aW9ucyI6MCwidXBUaW1lIjoiMDAuMDA6MDA6MDAiLCJ1c2VkTWVtb3J5IjoyNy40NzY1NjI1LCJhY3RpdmVTZXNzaW9ucyI6MH0p</GetServerInfoResult></GetServerInfoResponse>

注意我直接在服务器上本地调用请求。但是在通过网络远程调用时,响应是相同的。如果我将字符串的日志输出放到控制台,我可以看到输出字符串是正确的。 配置文件是相同的(地址除外)。

--编辑 通过 try-fail 方法,我发现 XML 响应中的字符串是用 Base64 编码的 JSON 字符串。

有人可以帮我看看有什么问题吗?

【问题讨论】:

    标签: json xml wcf get


    【解决方案1】:

    经过一番研究,我没有找到任何解决方案。但是,在重新启动操作系统(Win Server 2012)并重建它之后,它就像一个魅力。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-11
      • 2020-06-02
      • 1970-01-01
      • 2012-02-26
      • 2023-04-05
      • 2012-06-20
      • 1970-01-01
      相关资源
      最近更新 更多