C# 你知道如何将这样一个对象放到WCF服务中吗?
你好 我有以下问题: 如何放置以下对象C# 你知道如何将这样一个对象放到WCF服务中吗?,c#,wcf,C#,Wcf,你好 我有以下问题: 如何放置以下对象 [DataContract] public class TimeItem { [DataMember] public DateTime LocalTime { get; set; } [DataMember] public double XPos { get; set; } [DataMember] public double YPos { get; set; } [DataMember] p
[DataContract]
public class TimeItem
{
[DataMember]
public DateTime LocalTime { get; set; }
[DataMember]
public double XPos { get; set; }
[DataMember]
public double YPos { get; set; }
[DataMember]
public byte[] ScreenImage { get; set; } //Could be very huge
}
到WCF服务?(我还编写了WCF服务,因此如果需要,我可以自定义它)。
它工作得很好,但是,如果是大字节数组(屏幕图像),我会收到一个错误400(错误的服务请求)。请看一看与WCF服务之间的大数据传输。这将要求您将数据协定更改为a,在除大数据字段外的所有字段上使用而不是DataContract
,而不是DataMember
,然后在字节数据上使用-应更改为a
请注意,以这种方式接收的流往往会在属性上返回false
,因此请注意如何从流中读取数据
您可能还需要调整客户端和服务器端配置上的消息大小限制,使用类似的方法
希望这有助于了解WCF服务之间的大数据传输。这将要求您将数据协定更改为a,在除大数据字段外的所有字段上使用而不是DataContract
,而不是DataMember
,然后在字节数据上使用-应更改为a
请注意,以这种方式接收的流往往会在属性上返回false
,因此请注意如何从流中读取数据
您可能还需要调整客户端和服务器端配置上的消息大小限制,使用类似的方法
希望这会有所帮助您可以做一些事情来允许使用更大的数组(更改序列化配额;使用MTOM等),但最终还是会限制您可以作为单个消息发送的内容。听起来,无论您做什么,都会遇到限制,因此我建议您重新设计API,以在单独的消息中获取数据片段,并在服务器上重新组合。您可以做一些事情来允许更大的数组(更改序列化配额;使用MTOM等),但最终,您可以作为单个消息发送的内容是有限的。听起来,无论你做什么,你都会遇到限制,所以我建议重新设计API,将数据片段放在单独的消息中,并在服务器上重新组合。也许你需要增加你的wcf消息大小(在web配置文件中) 检查此链接,
也许您需要增加您的wcf消息大小(在web配置文件中) 检查此链接,
您可以使用绑定定义的
maxReceivedMessageSize
属性。它将允许您发送更大的请求
...
<wsHttpBinding>
<binding name="httpBinding"
maxBufferPoolSize="965536"
maxReceivedMessageSize="965536">
<readerQuotas maxStringContentLength="965536" />
</binding>
</wsHttpBinding>
...
。。。
...
您可以使用绑定定义的maxReceivedMessageSize
属性。它将允许您发送更大的请求
...
<wsHttpBinding>
<binding name="httpBinding"
maxBufferPoolSize="965536"
maxReceivedMessageSize="965536">
<readerQuotas maxStringContentLength="965536" />
</binding>
</wsHttpBinding>
...
。。。
...
你的意思是喜欢重新实现?你的意思是喜欢重新实现?@user306080-你设置了MaxItemInObjectGraph吗?(链接:)@user306080-你设置了MaxItemInObjectGraph吗?(链接:)能否请您将您的问题更新为回复正文?使用提琴或类似的工具来获得它。假设我们将看到一条异常消息,并在那里跟踪。您能用回复正文更新您的问题吗?使用提琴或类似的工具来获得它。假设我们将看到一条异常消息,并在那里进行跟踪。