相关服务代码:
[WebGet(BodyStyle = WebMessageBodyStyle.WrappedResponse, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, UriTemplate="products")]
public Product[] GetAllProduct()
{
return ProductProvider.Instance.GetAllProducts();
}
[OperationContract]
Product[] GetAllProduct();
相关配置代码:
<?xml version="1.0"?>
<configuration>
<connectionStrings>
<add name="TestEntities" connectionString="metadata=res://*/ProductEntityDataModel.csdl|res://*/ProductEntityDataModel.ssdl|res://*/ProductEntityDataModel.msl;provider=System.Data.SqlClient;provider connection string="data source=PC\MSSQL2008;initial catalog=Test;integrated security=True;multipleactiveresultsets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
<system.serviceModel>
<services>
<service name="Service.Default">
<endpoint address="http://localhost:1651/Default.svc" binding="webHttpBinding" contract="Service.IDefault"/>
</service>
</services>
<behaviors>
<endpointBehaviors>
<behavior>
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
</system.serviceModel>
<system.web>
<compilation debug="true"/>
</system.web>
</configuration>
相关的小提琴请求
答案 0 :(得分:2)
过去我遇到过URITemplate的问题。你能尝试一下:
[WebGet(BodyStyle=WebMessageBodyStyle.WrappedResponse, ResponseFormat=WebMessageFormat.Json)]
public Product[] products()
{
return ProductProvider.Instance.GetAllProducts();
}
[OperationContract]
Product[] products();
答案 1 :(得分:0)
这可能是因为您的类中的DateTime类型属性默认为DateTime.MinValue(0001-01-01)。
我有完全相同的问题,并通过将日期设置为更大的值来解决它。
此外,您应该注意任何无法直接序列化为JSON的属性,例如TimeSpan,DateTimeOffset等。
答案 2 :(得分:0)
WCF DataContractSerializer has a limit of 65536 object in the object graph
希望它会有所帮助。
答案 3 :(得分:0)
我与Fiddler(v2.3.9.3)有类似的问题,使用BasicHttpBinding的服务;我能够通过将绑定上的transferMode
更改为Streamed
(默认为Buffered
)来修复它,然后将Fiddler置于流模式(确保“流”按钮上工具栏处于选中/按下状态。)
#Chris
答案 4 :(得分:0)
我刚碰到这个,问题是user72213发布的链接中提到的对象图限制。
使用ServiceBehaviorAttribute.MaxItemsInObjectGraph
属性修改此限制对我来说非常有用。
您还可以尝试<dataContractSerializer>
的maxItemsInObjectGraph
属性,但在我的情况下使用该属性会更方便。
答案 5 :(得分:0)
当返回的dateTime对象为null时,我遇到了这个问题。它在调试时运行良好,并在脱盐时出现问题。 一种方法是使你的dateTime null能够DateTime?并且它将被正确地反序列化。
希望对某人有帮助。