0

我有一个Silverlight应用程序,它是用实体框架4构建的,这是一个Silverlight模块堆,它是一个包含我的DomainService,Model和Web.Config的Web项目。从SQL数据库加载多行时发生Silverlight错误

我从本地SQL Server提取数据的工作正常。我的一个SL模块从特定表格中提取数据,当该表格中的行数超过4000行时,应用程序崩溃,并向我提供以下错误消息。当它有1000只左右的果蝇时,它工作得很好。 所以,我想也许DomainService不能处理所有的行或者可能我的webconfig中的绑定设置在某些方面是错误的。我该怎么办?

ERR消息:

{System.ServiceModel.DomainServices.Client.DomainOperationException:负载操作失败查询 'LoadSiteCageData'。远程服务器返回一个错误:NotFound。 ---> System.ServiceModel.CommunicationException:远程服务器返回一个错误:NotFound。 ---> System.Net.WebException:远程服务器返回一个错误:NotFound。 ---> System.Net.WebException:远程服务器返回一个错误:NotFound。 at System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult) at System.Net.Browser.BrowserHttpWebRequest。 <> c_ DisplayClass5.b _4(Object sendState) at System.Net.Browser.AsyncHelper。 <> C_ DisplayClass4.b _0(对象sendState)内部异常堆栈跟踪的 --- ---结束在 System.Net.Browser.AsyncHelper.BeginOnUI(SendOrPostCallback beginMethod,对象状态) 在System.Net。 Browser.BrowserHttpWebRequest.EndGetResponse(IAsyncResult的asyncResult) 在System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelAsyncRequest.CompleteGetResponse(IAsyncResult的结果) ---内部异常堆栈跟踪的结尾--- 在System.ServiceModel.DomainServices.Client .WebDomainClient`1.EndQueryCore(IAsyncResult asyncResult) at System.ServiceModel.DomainServices.Client.DomainClient.EndQuery(IAsyncResult asyncResult) at System.ServiceModel.Doma inServices.Client.DomainContext.CompleteLoad(IAsyncResult asyncResult) --- End of internal exception stack trace --- at System.ServiceModel.DomainServices.Client.OperationBase.Complete(Exception error) at System.ServiceModel.DomainServices.Client .LoadOperation.Complete(Exception error) at System.ServiceModel.DomainServices.Client.DomainContext.CompleteLoad(IAsyncResult asyncResult) at System.ServiceModel.DomainServices.Client.DomainContext。 <> C_ DisplayClass1b.b _17(对象)

的Web.Config

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
<configSections> 
    <sectionGroup name="system.serviceModel"> 
     <section name="domainServices" type="System.ServiceModel.DomainServices.Hosting.DomainServicesSection, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" allowDefinition="MachineToApplication" requirePermission="false" /> 
    </sectionGroup> 
</configSections> 
<appSettings /> 
    <system.web> 

    <httpModules> 
       <add name="DomainServiceModule" type="System.ServiceModel.DomainServices.Hosting.DomainServiceHttpModule, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    </httpModules> 
    <compilation debug="true" strict="false" explicit="true" targetFramework="4.0"> 
     <assemblies> 
      <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
     </assemblies> 
    </compilation> 
    <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"> 

    </pages> 

    <authentication mode="Windows" /> 

</system.web> 
<system.codedom></system.codedom> 

<system.webServer> 
    <modules> 
       <add name="DomainServiceModule" type="System.ServiceModel.DomainServices.Hosting.DomainServiceHttpModule, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    </modules> 
    <validation validateIntegratedModeConfiguration="false" /> 
</system.webServer> 
<system.serviceModel> 
    <behaviors> 
     <serviceBehaviors> 
      <behavior name=""> 
       <serviceMetadata httpGetEnabled="true" /> 
       <serviceDebug includeExceptionDetailInFaults="false" /> 
      </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <bindings> 
     <customBinding> 
      <binding name="MyService.Web.Service1.customBinding0"> 
       <binaryMessageEncoding /> 
       <httpTransport /> 
      </binding> 
     </customBinding> 
    </bindings> 
    <services> 
     <service name="MyService.Web.Service1"> 
      <endpoint address="" binding="customBinding" bindingConfiguration="MyService.Web.Service1.customBinding0" contract="MyService.Web.Service1" /> 
      <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
     </service> 
    </services> 
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" /> 
</system.serviceModel> 

+1

你可以发布你的配置,特别是端点规范吗?默认情况下,消息的大小限制(64kb?)。你需要增加这个。 –

+0

我已经将webconfig添加到了初始文章中,请帮助:) – Mcad001

回答

1

我相信这是由于数据的大小的限制,可以过来的线作为就像basichttpbinding一样。它是64k。

有2个选项可以解决这个问题。

  • 逐页提取数据页面
  • 下载数据,一些逗号分隔文件,分析和显示

我最常做的就是下载数据为压缩文件,解压后在客户端然后处理如此大量的数据。

+0

我无法通过分页来做到这一点,因为我要拖动的所有数据都被绘制在图表中。所以Zip也不是一种替代方案。 – Mcad001

+0

您仍可以分页数据。为此,您需要一次检索50个左右的记录。一旦下载了所有记录,就可以将它们绘制到图表上。 – cadrell0

+0

我对这些概念相当陌生,所以现在我看不清楚应该怎么做。所以,基本上我正在寻找这个qucik修复 - 如果这些缓冲区等我可以增加。 – Mcad001

相关问题