1

我们有一个 silverlight 应用程序,它与 RIA 服务接口以获取要在网格中显示的联系人列表,这通常可以正常工作,但是我们收到以下错误:

load operation failed for query x. the remote server returned an error: notfound

通过跟踪我们已经确定这是由于正在传递的数据量,因为如果我们传递大约 3,800 条或更少的记录,它将起作用。我们需要从数据库中加载至少 15,000 条记录。

我在整个互联网上搜索以找到解决方案并更改了以下设置,但似乎没有任何效果。

更改的设置是:

  • 在 IIS7 中,将 ASP 设置“响应缓冲限制”更改为 67108864
  • 在 IIS7 中,将 ASP 设置“最大请求实体正文限制”更改为 2000000
  • 在 IIS7 中,将 ASP 设置“客户端连接测试间隔”更改为 00:00:10
  • 在我们的应用程序 web.config 中将“maxItemsInObjectGraph”更改为 2147483647
  • 在我们的应用程序 web.config 绑定属性中,“maxReceivedMessageSize”、“maxBufferSize”和“maxBufferPoolSize”都设置为 200000000
  • 在我们的应用程序 web.config readerQuotas 属性 'maxArrayLength'、'maxStringContentLength'、'maxBytesPerRead'、'maxNameTableCharCount' 都设置为 200000000

这是在带有 IIS7 并使用 .Net 4 的 Server 2008 R2 上设置的。

使用 ASP.NET 开发服务器在调试器中运行时也会发生此错误。

任何帮助,将不胜感激。

4

1 回答 1

1

也许您的 Web.config 中的项目数量太有限,如果这不是修复,您也可以像这样在故障中启用详细信息以获得更多详细信息。

<services>
  <service name="Service.Class.Full.Name"
           behaviorConfiguration="Service_Behaviour_Name" />
</services>
<behaviors>
  <serviceBehaviors>
    <behavior name="Service_Behaviour_Name">
      <serviceMetadata httpGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="true" />
      <dataContractSerializer maxItemsInObjectGraph="65536" />
    </behavior>
 </behaviors>

Service.Class.Full.Name需要是您完全限定的服务类名称。 Service_Behaviour_Name可以是任何东西,但默认看起来像完整的服务类名称,-而不是.

于 2013-01-30T10:13:40.003 回答