|
SilverLight, GridView, отображение большого количества строк
|
|||
---|---|---|---|
#18+
Доброго времени суток. У меня возникает ошибка при загрузке большого списка строк в грид (например данные выбираются за год). Я понимаю, что эта ошибка связана с настройками web.config, но не знаю как исправить. Пожалуйста помогите, кто знает как - уже горю.. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 09:59 |
|
SilverLight, GridView, отображение большого количества строк
|
|||
---|---|---|---|
#18+
Очень прошу подсказать решение. Очень надо. Заранее благодарен! ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 11:30 |
|
SilverLight, GridView, отображение большого количества строк
|
|||
---|---|---|---|
#18+
Грунов, используете WCF? какая ошибка? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 12:35 |
|
SilverLight, GridView, отображение большого количества строк
|
|||
---|---|---|---|
#18+
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 (прога для тестирования сервиса) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 12:52 |
|
SilverLight, GridView, отображение большого количества строк
|
|||
---|---|---|---|
#18+
Вот часть файла 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> ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 12:58 |
|
SilverLight, GridView, отображение большого количества строк
|
|||
---|---|---|---|
#18+
ну так у Вас наверное по timeout-у соединение обрывается..., попробуйте увеличить таймауты (ReceiveTimeout, SendTimeout) ежели причина все-таки в объемах - тогда MaxBufferSize, MaxReceivedMessageSize (поставить int.MaxValue) <httpTransport maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" /> <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 13:02 |
|
SilverLight, GridView, отображение большого количества строк
|
|||
---|---|---|---|
#18+
LRну так у Вас наверное по timeout-у соединение обрывается..., попробуйте увеличить таймауты (ReceiveTimeout, SendTimeout) А не подскажете в каком блоке прописать эти таймауты? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 13:18 |
|
SilverLight, GridView, отображение большого количества строк
|
|||
---|---|---|---|
#18+
нашел где установить ... Но получаем теперь другую ошибку ... 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) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 13:25 |
|
SilverLight, GridView, отображение большого количества строк
|
|||
---|---|---|---|
#18+
хотя нет ... Это был мой ляп ... Ошибка осталась та же ... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 13:26 |
|
SilverLight, GridView, отображение большого количества строк
|
|||
---|---|---|---|
#18+
<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> вот такие настройки сейчас ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 13:29 |
|
SilverLight, GridView, отображение большого количества строк
|
|||
---|---|---|---|
#18+
Грунов, а добавление параметров <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 = ... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 13:32 |
|
SilverLight, GridView, отображение большого количества строк
|
|||
---|---|---|---|
#18+
ошибка выходит даже на WcfTestClient.exe ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 13:49 |
|
SilverLight, GridView, отображение большого количества строк
|
|||
---|---|---|---|
#18+
Грунов... <binaryMessageEncoding > ... вот такие настройки сейчас это на сервере, а на клиенте? binaryMessageEncoding включено? MaxBufferSize, MaxReceivedMessageSize заданы? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 13:51 |
|
SilverLight, GridView, отображение большого количества строк
|
|||
---|---|---|---|
#18+
<?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 ошибка все-равно есть... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 13:57 |
|
SilverLight, GridView, отображение большого количества строк
|
|||
---|---|---|---|
#18+
Груновошибка все-равно есть... какая? если это все та же "Configuration Error", значит конфиг-файл некорректен (внимательно проверьте вложенность тэгов, все ли закрыты и т.п.) если другая, давайте ее сюда ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 14:04 |
|
SilverLight, GridView, отображение большого количества строк
|
|||
---|---|---|---|
#18+
Грунов, в первую очередь добейтесь, чтобы страничка сервиса в браузере нормально открывалась (в адресной строке браузера задать http://localhost:54318/svcFinance.svc) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 14:12 |
|
SilverLight, GridView, отображение большого количества строк
|
|||
---|---|---|---|
#18+
сервис запускается нормально на клиенте установлены тоже maxReceivedMessage, timeout так-же, как и на сервере все запросы отрабатывают тоже без проблем только в одном случае (когда по клиенту возвращается около 4000 строк) выдается эта ошибка и несколько дней назад (когда этих строк было меньше) ошибки не было по этому-же клиенту (по другому типу документа) данные возвращаются без никаких проблем ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 14:39 |
|
SilverLight, GridView, отображение большого количества строк
|
|||
---|---|---|---|
#18+
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 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 15:26 |
|
SilverLight, GridView, отображение большого количества строк
|
|||
---|---|---|---|
#18+
кстати, когда ставлю точку останова в сервисе - вижу, что сервис формирует правильный массив (за несколько секунд) получается, что проблемма при доставке массива... хотя в настройках все квоты и так стоят по максимуму.... есть еще идеи что можно сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 15:31 |
|
SilverLight, GridView, отображение большого количества строк
|
|||
---|---|---|---|
#18+
странно, но получается, что массив по размеру превышает 2147483647 ...... можно как-то это обойти? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 15:55 |
|
SilverLight, GridView, отображение большого количества строк
|
|||
---|---|---|---|
#18+
Грунов, думаю самое правильное решение - ограничение кол-ва отгружаемых за раз клиенту записей, с соответствующим объяснением/пониманием в интерфейсе пользователя (это может быть и динамическая постраничная загрузка) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 16:58 |
|
|
start [/forum/topic.php?fid=21&fpage=34&tid=1441571]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 300ms |
total: | 436ms |
0 / 0 |