powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / SilverLight, GridView, отображение большого количества строк
22 сообщений из 22, страница 1 из 1
SilverLight, GridView, отображение большого количества строк
    #38071943
Грунов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток.
У меня возникает ошибка при загрузке большого списка строк в грид (например данные выбираются за год).
Я понимаю, что эта ошибка связана с настройками web.config, но не знаю как исправить.
Пожалуйста помогите, кто знает как - уже горю..
...
Рейтинг: 0 / 0
SilverLight, GridView, отображение большого количества строк
    #38072076
Грунов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очень прошу подсказать решение.
Очень надо.

Заранее благодарен!
...
Рейтинг: 0 / 0
SilverLight, GridView, отображение большого количества строк
    #38072220
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Грунов,

используете WCF? какая ошибка?
...
Рейтинг: 0 / 0
SilverLight, GridView, отображение большого количества строк
    #38072265
Грунов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LRГрунов,

используете WCF? какая ошибка?

wcf используется

The underlying connection was closed: The connection was closed unexpectedly.

Server stack trace:
at System.ServiceModel.Channels.HttpChannelUtilities.ProcessGetResponseWebException(WebException webException, HttpWebRequest request, HttpAbortReason abortReason)
at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)
at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at svcFinance.Account_GetClientInvoices(Int32 aType, Int32 aLang, Int32 aKindID, Int32 aDeptID, Int32 aClient, Boolean aPaid)
at svcFinanceClient.Account_GetClientInvoices(Int32 aType, Int32 aLang, Int32 aKindID, Int32 aDeptID, Int32 aClient, Boolean aPaid)

Inner Exception:
The underlying connection was closed: The connection was closed unexpectedly.
at System.Net.HttpWebRequest.GetResponse()
at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)


эта ошибка возвращается в WcfTestClient.exe (прога для тестирования сервиса)
...
Рейтинг: 0 / 0
SilverLight, GridView, отображение большого количества строк
    #38072280
Грунов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот часть файла web.config

<?xml version="1.0"?>

<configuration>
<system.web>
<httpRuntime maxRequestLength="1048576" executionTimeout="18000" />
<compilation debug="true" targetFramework="4.0" />
</system.web>

<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<customBinding>
<binding name="AppServer.svcFinReports.customBinding0">
<binaryMessageEncoding />
<httpTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647"
transferMode="Buffered" />
</binding>
</customBinding>
</bindings>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"
multipleSiteBindingsEnabled="true" />
<services>
<service name="AppServer.svcFinReports">
<endpoint address="" binding="customBinding" bindingConfiguration="AppServer.svcFinReports.customBinding0"
contract="AppServer.svcFinReports" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
</system.serviceModel>
</configuration>
...
Рейтинг: 0 / 0
SilverLight, GridView, отображение большого количества строк
    #38072295
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну так у Вас наверное по timeout-у соединение обрывается..., попробуйте увеличить таймауты (ReceiveTimeout, SendTimeout)
ежели причина все-таки в объемах - тогда MaxBufferSize, MaxReceivedMessageSize (поставить int.MaxValue)
<httpTransport maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" />
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
...
Рейтинг: 0 / 0
SilverLight, GridView, отображение большого количества строк
    #38072335
Грунов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LRну так у Вас наверное по timeout-у соединение обрывается..., попробуйте увеличить таймауты (ReceiveTimeout, SendTimeout)


А не подскажете в каком блоке прописать эти таймауты?
...
Рейтинг: 0 / 0
SilverLight, GridView, отображение большого количества строк
    #38072353
Грунов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нашел где установить ... Но получаем теперь другую ошибку ...

The content type text/html; charset=utf-8 of the response message does not match the content type of the binding (application/soap+msbin1). If using a custom encoder, be sure that the IsContentTypeSupported method is implemented properly. The first 1024 bytes of the response were : '<html>
<head>
<title>Configuration Error</title>
<style>
body {font-family:"Verdana";font-weight:normal;font-size: .7em;color:black;}
p {font-family:"Verdana";font-weight:normal;color:black;margin-top: -5px}
b {font-family:"Verdana";font-weight:bold;color:black;margin-top: -5px}
H1 { font-family:"Verdana";font-weight:normal;font-size:18pt;color:red }
H2 { font-family:"Verdana";font-weight:normal;font-size:14pt;color:maroon }
pre {font-family:"Lucida Console";font-size: .9em}
.marker {font-weight: bold; color: black;text-decoration: none;}
.version {color: gray;}
.error {margin-bottom: 10px;}
.expandable { text-decoration:underline; font-weight:bold; color:navy; cursor:hand; }
</style>
</head>

<body bgcolor="white">

<span><H1>Server Error in '/' Application.<hr width=100% size=1 color=silver></H1>

<h2> <i>Configuration Error</i> </h2></sp'.

Server stack trace:
at System.ServiceModel.Channels.HttpChannelUtilities.ValidateRequestReplyResponse(HttpWebRequest request, HttpWebResponse response, HttpChannelFactory factory, WebException responseException, ChannelBinding channelBinding)
at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)
at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at svcFinance.Account_GetClientInvoices(Int32 aType, Int32 aLang, Int32 aKindID, Int32 aDeptID, Int32 aClient, Boolean aPaid)
at svcFinanceClient.Account_GetClientInvoices(Int32 aType, Int32 aLang, Int32 aKindID, Int32 aDeptID, Int32 aClient, Boolean aPaid)

Inner Exception:
The remote server returned an error: (500) Internal Server Error.
at System.Net.HttpWebRequest.GetResponse()
at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
...
Рейтинг: 0 / 0
SilverLight, GridView, отображение большого количества строк
    #38072360
Грунов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хотя нет ... Это был мой ляп ...

Ошибка осталась та же ...
...
Рейтинг: 0 / 0
SilverLight, GridView, отображение большого количества строк
    #38072368
Грунов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
<binding name="AppServer.svcFinance.customBinding0" closeTimeout="10:59:00" openTimeout="10:59:00" receiveTimeout="10:59:00" sendTimeout="10:59:00" >
<binaryMessageEncoding >
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
</binaryMessageEncoding>
<httpTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" maxBufferPoolSize="2147483647"
transferMode="Buffered" />
</binding>

вот такие настройки сейчас
...
Рейтинг: 0 / 0
SilverLight, GridView, отображение большого количества строк
    #38072375
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Грунов,

а добавление параметров <readerQuotas не помогло? таймаут может быть следствием а не причиной...
и, важно, на клиенте у Вас MaxBufferSize, MaxReceivedMessageSize заданы?

на клиенте у меня это в коде:
var transport = (address.Scheme.ToLower() == "https" ? new HttpsTransportBindingElement() : new HttpTransportBindingElement());
transport.MaxBufferSize = int.MaxValue;
transport.MaxReceivedMessageSize = int.MaxValue;
...
CustomBinding binding = new CustomBinding(...
binding.OpenTimeout = ...
binding.ReceiveTimeout = ...
binding.SendTimeout = ...
...
Рейтинг: 0 / 0
SilverLight, GridView, отображение большого количества строк
    #38072417
Грунов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ошибка выходит даже на WcfTestClient.exe
...
Рейтинг: 0 / 0
SilverLight, GridView, отображение большого количества строк
    #38072422
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Грунов...
<binaryMessageEncoding >
...
вот такие настройки сейчас
это на сервере, а на клиенте? binaryMessageEncoding включено? MaxBufferSize, MaxReceivedMessageSize заданы?
...
Рейтинг: 0 / 0
SilverLight, GridView, отображение большого количества строк
    #38072436
Грунов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.serviceModel>
<bindings>
<customBinding>
<binding name="CustomBinding_svcFinance" closeTimeout="00:10:00"
openTimeout="00:10:00" sendTimeout="00:10:00">
<binaryMessageEncoding maxReadPoolSize="2147483647" maxWritePoolSize="2147483647"
maxSessionSize="2147483647">
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
</binaryMessageEncoding>
<httpTransport manualAddressing="false" maxBufferPoolSize="2147483647"
maxReceivedMessageSize="2147483647" allowCookies="false" authenticationScheme="Anonymous"
bypassProxyOnLocal="false" decompressionEnabled="true" hostNameComparisonMode="StrongWildcard"
keepAliveEnabled="true" maxBufferSize="2147483647" proxyAuthenticationScheme="Anonymous"
realm="" transferMode="Buffered" unsafeConnectionNtlmAuthentication="false"
useDefaultWebProxy="true" />
</binding>
</customBinding>
</bindings>
<client>
<endpoint address=" http://localhost:54318/svcFinance.svc" binding="customBinding"
bindingConfiguration="CustomBinding_svcFinance" contract="svcFinance"
name="CustomBinding_svcFinance" />
</client>
</system.serviceModel>
</configuration>

вот такие настройки установил в WcfTestClient

ошибка все-равно есть...
...
Рейтинг: 0 / 0
SilverLight, GridView, отображение большого количества строк
    #38072450
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Груновошибка все-равно есть...
какая? если это все та же "Configuration Error", значит конфиг-файл некорректен (внимательно проверьте вложенность тэгов, все ли закрыты и т.п.)
если другая, давайте ее сюда
...
Рейтинг: 0 / 0
SilverLight, GridView, отображение большого количества строк
    #38072466
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Грунов,

в первую очередь добейтесь, чтобы страничка сервиса в браузере нормально открывалась (в адресной строке браузера задать http://localhost:54318/svcFinance.svc)
...
Рейтинг: 0 / 0
SilverLight, GridView, отображение большого количества строк
    #38072523
Грунов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сервис запускается нормально

на клиенте установлены тоже maxReceivedMessage, timeout так-же, как и на сервере

все запросы отрабатывают тоже без проблем
только в одном случае (когда по клиенту возвращается около 4000 строк) выдается эта ошибка и несколько дней назад (когда этих строк было меньше) ошибки не было
по этому-же клиенту (по другому типу документа) данные возвращаются без никаких проблем
...
Рейтинг: 0 / 0
SilverLight, GridView, отображение большого количества строк
    #38072613
Грунов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
System.ServiceModel.CommunicationException was unhandled by user code
Message=Удаленный сервер возвратил ошибку: NotFound.
StackTrace:
в System.ServiceModel.AsyncResult.End[TAsyncResult](IAsyncResult result)
в System.ServiceModel.Channels.ServiceChannel.EndCall(String action, Object[] outs, IAsyncResult result)
в System.ServiceModel.ClientBase`1.ChannelBase`1.EndInvoke(String methodName, Object[] args, IAsyncResult result)
в Vulcan.srFinance.svcFinanceClient.svcFinanceClientChannel.EndAccount_GetClientInvoices(IAsyncResult result)
в Vulcan.srFinance.svcFinanceClient.Vulcan.srFinance.svcFinance.EndAccount_GetClientInvoices(IAsyncResult result)
в Vulcan.srFinance.svcFinanceClient.OnEndAccount_GetClientInvoices(IAsyncResult result)
в System.ServiceModel.ClientBase`1.OnAsyncCallCompleted(IAsyncResult result)
InnerException: System.Net.WebException
Message=Удаленный сервер возвратил ошибку: NotFound.
StackTrace:
в System.Net.Browser.AsyncHelper.BeginOnUI(SendOrPostCallback beginMethod, Object state)
в System.Net.Browser.BrowserHttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
в System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelAsyncRequest.CompleteGetResponse(IAsyncResult result)
InnerException: System.Net.WebException
Message=Удаленный сервер возвратил ошибку: NotFound.
StackTrace:
в System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult)
в System.Net.Browser.BrowserHttpWebRequest.<>c__DisplayClassa.<EndGetResponse>b__9(Object sendState)
в System.Net.Browser.AsyncHelper.<>c__DisplayClass4.<BeginOnUI>b__1(Object sendState)
InnerException:


вот такое сообщение выдает VisualStudio
...
Рейтинг: 0 / 0
SilverLight, GridView, отображение большого количества строк
    #38072627
Грунов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати, когда ставлю точку останова в сервисе - вижу, что сервис формирует правильный массив (за несколько секунд)
получается, что проблемма при доставке массива...
хотя в настройках все квоты и так стоят по максимуму....

есть еще идеи что можно сделать?
...
Рейтинг: 0 / 0
SilverLight, GridView, отображение большого количества строк
    #38072692
Грунов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
странно, но получается, что массив по размеру превышает 2147483647 ......

можно как-то это обойти?
...
Рейтинг: 0 / 0
SilverLight, GridView, отображение большого количества строк
    #38072853
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Грунов,

думаю самое правильное решение - ограничение кол-ва отгружаемых за раз клиенту записей, с соответствующим объяснением/пониманием в интерфейсе пользователя (это может быть и динамическая постраничная загрузка)
...
Рейтинг: 0 / 0
SilverLight, GridView, отображение большого количества строк
    #38073236
pshik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Грузите по страницам...Paging кажется.
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / SilverLight, GridView, отображение большого количества строк
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]