none
用WCF读取数据到SL中,有4个字段.1200行时可以读取,但1900行时,就读不到了,报The remote server returned an error: NotFound 错误 RRS feed

答案

  • 会不会是读取超默认时间,或者超过默认大小
    检查一下,修改默认大小试试

    ServiceReferences.ClientConfig 这个文件中可以修改
    2009年7月6日 15:35
    版主
  • 还有2个地方可以检查:Web.Config ,  Machine.Config (4MB limit by default)
    不过还是建议分批传递,以便将来的可扩展性.

    2009年7月7日 7:52
  • ok,已解决,需要在wcf的web.config配置maxItemsInObjectGraph的大小

    <behaviors>
       <serviceBehaviors>
        <behavior name="NcsSite.WcfServices.ClientServiceBehavior">
         <serviceMetadata httpGetEnabled="true" />
         <serviceDebug includeExceptionDetailInFaults="false" />
         <dataContractSerializer maxItemsInObjectGraph="2147483647" />
        </behavior>
       </serviceBehaviors>
      </behaviors>

    aaaa
    2009年7月10日 9:44

全部回复

  • 会不会是读取超默认时间,或者超过默认大小
    检查一下,修改默认大小试试

    ServiceReferences.ClientConfig 这个文件中可以修改
    2009年7月6日 15:35
    版主
  • <httpTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" />

    这里用的是什么单位,无论是B或是KB,好像都挺大的呀
    aaaa
    2009年7月7日 1:15
  • 上面就是默认的,再改大,就出差了,超出了int32范围.
    aaaa
    2009年7月7日 1:23
  • <configuration>
        <system.serviceModel>
            <bindings>
                <customBinding>
                    <binding name="CustomBinding_ClientService">
                        <binaryMessageEncoding />
         <httpTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" />
                    </binding>
                </customBinding>
            </bindings>
            <client>
                <endpoint address="http://localhost:3565/WcfServices/ClientService.svc"
                    binding="customBinding" bindingConfiguration="CustomBinding_ClientService"
                    contract="ClientWcfService.ClientService" name="CustomBinding_ClientService" />
            </client>
        </system.serviceModel>
    </configuration>


    这是默认的配置文件
    aaaa
    2009年7月7日 1:25
  • 嗯,最大是2G
    2009年7月7日 1:54
    版主
  • 我换成

    <configuration>
     <system.serviceModel>
      <bindings>
       <basicHttpBinding>
        <binding name="BasicHttpBinding_IClientService" maxBufferSize="2147483647"
                        maxReceivedMessageSize="2147483647">
         <security mode="None" />
        </binding>
       </basicHttpBinding>
      </bindings>
      <client>
       <endpoint address="http://localhost:3565/WcfServices/ClientService.svc" binding="basicHttpBinding"
                    bindingConfiguration="BasicHttpBinding_IClientService" contract="ClientWcfService.IClientService"
                    name="BasicHttpBinding_IClientService" />
      </client>
     </system.serviceModel>
    </configuration>


    这种方式也不行,郁闷


    aaaa
    2009年7月7日 1:55
  • returned an error  跟踪wcf跟监控吓数据库是否有返回值,查询值是否正常

    或者建个windows application 连这个wcf看看是不是也同样错误。
    2009年7月7日 4:38
    版主
  • 我跟踪了,赋值是没有问题的,而且1000条左右,就能正常,1900条不不行,就很奇怪了
    aaaa
    2009年7月7日 7:04
  • 还有2个地方可以检查:Web.Config ,  Machine.Config (4MB limit by default)
    不过还是建议分批传递,以便将来的可扩展性.

    2009年7月7日 7:52
  • 还有2个地方可以检查:Web.Config ,  Machine.Config (4MB limit by default)
    不过还是建议分批传递,以便将来的可扩展性.


    请问,如何分批?
    aaaa
    2009年7月7日 9:14
  • 你好,
    请问用Console程序来做客户端的话读取1900条数据时会有问题吗?
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    2009年7月8日 6:08
    版主
  • 你好,
    请问用Console程序来做客户端的话读取1900条数据时会有问题吗?
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    这种方式没有调试.
    aaaa
    2009年7月8日 9:31
  • 你好,
    请问用Console程序来做客户端的话读取1900条数据时会有问题吗?
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    这种方式没有调试.
    aaaa

    什么叫没有调试呢?是说用Console做客户端就没有问题吗?
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    2009年7月9日 3:33
    版主
  • 用Console Application做客户端,测试结果:基础连接已经关闭: 连接被意外关闭。

    还是不能获取到数据.奇怪了.

    开始我没有设置下面三个选项时,会提示消息大小超过.然后我就设置为下面的值,结果就出现:基础连接已经关闭: 连接被意外关闭。
    还是不能正常获取数据

    maxBufferPoolSize="2147483647"
    maxReceivedMessageSize="2147483647" 
    maxBufferSize="2147483647"


    aaaa
    2009年7月10日 9:09
  • ok,已解决,需要在wcf的web.config配置maxItemsInObjectGraph的大小

    <behaviors>
       <serviceBehaviors>
        <behavior name="NcsSite.WcfServices.ClientServiceBehavior">
         <serviceMetadata httpGetEnabled="true" />
         <serviceDebug includeExceptionDetailInFaults="false" />
         <dataContractSerializer maxItemsInObjectGraph="2147483647" />
        </behavior>
       </serviceBehaviors>
      </behaviors>

    aaaa
    2009年7月10日 9:44