Fiddler - ReadResponse失败:服务器未返回此请求的响应

时间:2012-02-24 04:14:15

标签: c# json wcf rest

这是我在几次处理RESTful Web服务后第一次遇到这种错误。我发现很难找出错误的原因,希望你能帮助我。

我有登录服务的这个属性

[WebGet(UriTemplate = "Login?username={username}&password={password}&ip={ip}", ResponseFormat = WebMessageFormat.Json)]  

使用fiddler来使用该服务:

获取http://localhost:3445/Authenticate/Login?username=jsm&password=a&ip=1

enter image description here

提琴手回应:

[Fiddler] ReadResponse() failed: The server did not return a response for this request.  

enter image description here

我不确定它是否由Content-type: application/json引起,因为当我尝试将其更改为xml时:

[WebGet(UriTemplate = "Login?username={username}&password={password}&ip={ip}", ResponseFormat = WebMessageFormat.Xml)]  

它给了我这个结果:

enter image description here

有点奇怪。我做错了什么?我必须返回json对象..谢谢!

5 个答案:

答案 0 :(得分:4)

错误原因是束数据类型的加载(请参阅上面的xml数据预览)。 Json有大约65K对象的限制,在我的项目中它超出了限制。所以最终的解决方案是创建DTO - “数据传输对象”,它将最小化要传递的数据。

答案 1 :(得分:1)

由于不同的问题,我有几次同样的错误。主要原因是wcf无法序列化对象。

在我的第一种情况下是因为,返回的对象不是服务中声明的正确对象。该服务应该已经返回了student对象,但我正在返回studentExtended对象(继承对象)。

在我的第二种情况下,这是因为dateTime属性的形式是不可序列化的(它是null)。所以我把它改成了DateTime.now,所以在那之后再次工作

此致

答案 2 :(得分:0)

我有同样的问题Fiddler] ReadResponse()失败了:我的解决方案是:在IIS中,回收应用程序所在的应用程序池。

答案 3 :(得分:0)

  
    

我正在使用Xampp和Installed Fiddler ...发生了相同的错误......

         

我只运行IIS (由于运行Xampp而停止运行)并且一切正常。 :)

  

答案 4 :(得分:0)

我遇到了同样的问题。最后,找到了为返回对象定义Contract类型的问题。

我已将[DataMember]替换为[EnumMember],如下所述:

[DataContract]
public enum DiscountType
{
    [EnumMember]
    NONE = 0,
    [EnumMember]
    PERCENTAGE_DISCOUNT = 1
}

这修复了我的" [Fiddler] ReadResponse()失败"我花了半天时间的错误。