这是我在几次处理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
提琴手回应:
[Fiddler] ReadResponse() failed: The server did not return a response for this request.
我不确定它是否由Content-type: application/json
引起,因为当我尝试将其更改为xml时:
[WebGet(UriTemplate = "Login?username={username}&password={password}&ip={ip}", ResponseFormat = WebMessageFormat.Xml)]
它给了我这个结果:
有点奇怪。我做错了什么?我必须返回json对象..谢谢!
答案 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()失败"我花了半天时间的错误。