Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WCF ResponseFormat JSON在Fiddler中返回JSON,在Chrome/Firefox中返回Xml!_C#_Wcf_Json - Fatal编程技术网

C# WCF ResponseFormat JSON在Fiddler中返回JSON,在Chrome/Firefox中返回Xml!

C# WCF ResponseFormat JSON在Fiddler中返回JSON,在Chrome/Firefox中返回Xml!,c#,wcf,json,C#,Wcf,Json,嗨,我有一个WCFREST4.0项目。出于某种原因,我有一个Web服务,它应该返回Json,如果我通过fiddler点击端点,它会返回Json,但如果我输入得到xml的地址,它会通过firefox或chrome返回。发生什么事了 谢谢你的帮助!这是密码 有问题的Web服务: [OperationContract] [WebGet(UriTemplate = "", ResponseFormat = WebMessageFormat.

嗨,我有一个WCFREST4.0项目。出于某种原因,我有一个Web服务,它应该返回Json,如果我通过fiddler点击端点,它会返回Json,但如果我输入得到xml的地址,它会通过firefox或chrome返回。发生什么事了

谢谢你的帮助!这是密码

有问题的Web服务:

  [OperationContract]
  [WebGet(UriTemplate = "",                  
          ResponseFormat = WebMessageFormat.Json,
          RequestFormat = WebMessageFormat.Json)]

        public SomeObject [] GetObjects()
        {
              .....
目标代码:

[DataContract]
public class SomeObject
{      
        [DataMember]
        public string Date { get; private set; }

        ....
            public String Site { get; private set; }

浏览器不能显示原始JSON,但是您可以使用JSON查看器之类的工具
()或Fiddler也适合做那份工作。

我将此作为评论发布,但我会在这里添加更多细节

您的浏览器很可能正在发送此标题:

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
注意,它没有提到json,但提到了xml


您的WCF客户端很可能使用了一个不同的“Accept”头,该头优先选择json。您可以在Fiddler中对此进行检查。

如果您使用的是.NET 4.0 framework,这就是解决方案:

WCF现在有了JSONP的开箱即用支持,只需要很少的配置

基本上,您只需要编辑/添加两个配置文件条目,authenticationMode和StandardEndpoint,瞧,您可以在任何浏览器中查看WCF服务的json响应

编辑:原始链接已关闭-这可能会有所帮助:

我也遇到同样的问题。

我必须将web.config中的布尔值从true更改为:

<standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true"/>

错:

<standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="false"/>


检查您的请求标题。特别是“接受”。您在地址栏中键入的地址是什么?web服务的uri。即使在我点击“查看源”时?还有其他地方存在该帖子吗?遇到同样的问题,链接对我来说是死的。这个标题让IIS自动选择响应格式。请参阅我的答案
automaticFormatSelectEnabled=“false”
,让服务自行决定格式。