Ich habe eine Silverlight 3.0-Anwendung, die einen WCF-Dienst verwendet, um mit der Datenbank zu kommunizieren, und wenn große Datenmengen von den Servicemethoden zurückgegeben werden, erhalte ich Service Not Found-Fehler. Ich bin ziemlich sicher, dass die Lösung darin besteht, einfach die Eigenschaft maxItemsInObjectGraph zu aktualisieren, aber ich erstelle den Service-Client progromatisch und kann nicht herausfinden, wo diese Eigenschaft gesetzt werden soll. Hier ist, was ich gerade mache:Wie kann ich die maxItemsInObjectGraph-Eigenschaft programmgesteuert von einer Silverlight-Anwendung festlegen?
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")));
Ich habe mir das angesehen, aber aus irgendeinem Grund hat die OperationDescription keine Behaviors-Eigenschaft. –
Ich sehe. Ich denke, da der Client eine Silverilght-Anwendung ist, unterscheidet sich die System.ServiceModel.dll von der .NET. Aber DataContractSerializer maxItemsInObjectGraph auf Silverlight standardmäßig Int.MaxValue. Wird es in Ihrem Code auf einen kleineren Wert gesetzt? – erxuan
Nein. Vielleicht war das ein Missverständnis meinerseits, aber ich dachte, dass es wesentlich weniger als int.MaxValue ausgefallen ist. Ich hatte ASPX-Seiten, die WCF-Dienste verwendet und hatte ein ähnliches Problem, und ich war in der Lage, die maxItemsInObjectGraph in der web.config zu 2147483646 zu ändern und es das Problem behoben. –