Tôi có một ứng dụng Silverlight 3.0 đang sử dụng dịch vụ WCF để giao tiếp với cơ sở dữ liệu và khi tôi có một lượng lớn dữ liệu được trả về từ các phương thức dịch vụ, tôi nhận được lỗi Dịch vụ không tìm thấy. Tôi khá tự tin rằng giải pháp cho nó là chỉ cần cập nhật các thuộc tính maxItemsInObjectGraph, nhưng tôi đang tạo ra các khách hàng dịch vụ progrogrammatically và không thể tìm thấy nơi để thiết lập tài sản này. Đây là những gì tôi đang làm ngay bây giờ:Làm cách nào tôi có thể đặt thuộc tính maxItemsInObjectGraph theo chương trình từ Ứng dụng 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")));
Tôi đã xem xét điều đó, nhưng vì lý do nào đó, OperationDescription không có thuộc tính Hành vi. –
Tôi hiểu. Tôi đoán vì khách hàng là một ứng dụng Silverilght, System.ServiceModel.dll khác với .NET. Nhưng DataContractSerializer maxItemsInObjectGraph trên Silverlight mặc định là int.MaxValue. Bạn sẽ đặt nó thành một giá trị nhỏ hơn trong mã của bạn? – erxuan
Không. Có lẽ đây là một sự hiểu lầm về phía tôi, nhưng tôi nghĩ rằng nó được mặc định là ít hơn nhiều so với int.MaxValue. Tôi đã có các trang aspx sử dụng dịch vụ WCF và đã có một vấn đề tương tự, và tôi đã có thể sửa đổi các maxItemsInObjectGraph trong web.config là 2147483646 và nó cố định vấn đề. –