gpt4 book ai didi

wcf - 如何从 Silverlight 应用程序以编程方式设置 maxItemsInObjectGraph 属性?

转载 作者:行者123 更新时间:2023-12-03 18:37:35 25 4
gpt4 key购买 nike

我有一个 Silverlight 3.0 应用程序,它使用 WCF 服务与数据库进行通信,当我从服务方法返回大量数据时,我收到 Service Not Found 错误。我相当有信心,它的解决方案是简单地更新 maxItemsInObjectGraph 属性,但我正在以编程方式创建服务客户端并且找不到设置此属性的位置。这是我现在正在做的事情:

BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.None)
{
MaxReceivedMessageSize = int.MaxValue,
MaxBufferSize = int.MaxValue
};

MyService.MyServiceServiceClient client = new MyService.MyServiceProxyServiceClient(binding, new EndpointAddress(new Uri(Application.Current.Host.Source, "../MyService.svc")));

最佳答案

它不是在绑定(bind)中定义的,而是在服务行为中定义的。

在 Silveright 中,maxItemsInObjectGraph 默认为 int.MaxValue。

这是一篇关于如何为 .NET 应用程序而不是 Silverlight 更改它的文章:Programattically setting the MaxItemsInObjectGraph property in client

代码片段:

protected ISecurityAdministrationService GetSecAdminClient()
{
ChannelFactory<ISecurityAdministrationService> factory = new ChannelFactory<ISecurityAdministrationService>(wsSecAdminBinding, SecAdminEndpointAddress);
foreach (OperationDescription op in factory.Endpoint.Contract.Operations)
{
DataContractSerializerOperationBehavior dataContractBehavior =op.Behaviors.Find<DataContractSerializerOperationBehavior>() as DataContractSerializerOperationBehavior;
if (dataContractBehavior != null)
{
dataContractBehavior.MaxItemsInObjectGraph = 2147483647;
}
}
ISecurityAdministrationService client = factory.CreateChannel();
return client;
}

关于wcf - 如何从 Silverlight 应用程序以编程方式设置 maxItemsInObjectGraph 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2473620/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com