J'ai une application Silverlight 3.0 qui utilise un service WCF pour communiquer avec la base de données, et lorsque de grandes quantités de données sont renvoyées à partir des méthodes de service, j'obtiens des erreurs Service Not Found. Je suis assez confiant que la solution à elle est simplement de mettre à jour la propriété maxItemsInObjectGraph, mais je crée le client de service progrogrammatically et ne peux pas trouver où placer cette propriété. Voici ce que je fais en ce moment:Comment puis-je définir la propriété maxItemsInObjectGraph par programme à partir d'une application Silverlight?
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")));
J'ai examiné cela, mais pour une raison quelconque, OperationDescription n'a pas de propriété Behaviors. –
Je vois. Je suppose que parce que le client est une application Silverilght, le System.ServiceModel.dll est différent de celui du .NET. Mais DataContractSerializer maxItemsInObjectGraph sur Silverlight est par défaut int.MaxValue. Allez-vous le définir à une plus petite valeur dans votre code? – erxuan
Non. Peut-être que c'était un malentendu de ma part, mais je pensais que c'était par défaut beaucoup moins que int.MaxValue. J'ai eu des pages aspx qui utilisaient des services WCF et avait un problème similaire, et j'ai été en mesure de modifier le maxItemsInObjectGraph dans le web.config pour être 2147483646 et il a résolu le problème. –