Ошибка WCF с большими объектами не найдена - PullRequest
0 голосов
/ 02 августа 2011

У меня проблема с вызовом службы WCF. Служба принимает сложный объект, который имеет много списков объектов внутри него. Проблема возникает, когда объект становится слишком большим. Я получаю исключение связи, которое говорит, что Не найдено. Вызов работает до тех пор, пока предмет не слишком большой. Любая помощь будет оценена. Вот соответствующая часть файла конфигурации клиента:

<bindings>
    <basicHttpBinding>
        <binding name="BasicHttpBinding_ICartService" maxBufferSize="2147483647"
                 maxReceivedMessageSize="2147483647">
            <security mode="None" />
        </binding>
    </basicHttpBinding>
</bindings>
<client>
    <endpoint address="../Services/CartService.svc"
              binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ICartService"
              contract="AccessPoint.RichClient.Wcf.ICartService"
              name="BasicHttpBinding_ICartService" />
</client>

Файл web.config имеет следующее содержимое:

<bindings>
    <basicHttpBinding>
        <binding name="basicHttpLargeMessage" closeTimeout="00:02:00"
                 openTimeout="00:02:00" receiveTimeout="00:10:00" sendTimeout="00:02:00"
                 maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647">
            <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
                maxArrayLength="2147483647" maxBytesPerRead="2147483647"
                maxNameTableCharCount="2147483647" />
        </binding>
    </basicHttpBinding>
</bindings>

<services>
    <service behaviorConfiguration="CartService.CartServiceBehavior"
             name="AccessPoint.WcfServices.CartService">
        <endpoint address="" behaviorConfiguration="CartServiceBehavior"
                  binding="basicHttpBinding" bindingConfiguration="basicHttpLargeMessage"
                  contract="AccessPoint.WcfServices.ICartService" />
</service>

<behaviors>
    <serviceBehaviors>
        <behavior name="CartService.CartServiceBehavior">
            <serviceMetadata httpGetEnabled="true" />
            <serviceDebug includeExceptionDetailInFaults="true" />
            <dataContractSerializer maxItemsInObjectGraph ="2147483647"/>
        </behavior>
    </serviceBehaviors>
    <endpointBehaviors>
        <behavior name="CartServiceBehavior">
            <dataContractSerializer maxItemsInObjectGraph="2147483647" />
        </behavior>
    </endpointBehaviors>
</behaviors>

1 Ответ

0 голосов
/ 02 августа 2011

Любая ошибка сервера будет отражена в Silverlight как исключение «Не найдено». Вам нужно либо использовать какой-либо инструмент сетевого анализа (например, Fiddler), чтобы узнать, содержит ли ответ дополнительную информацию об ошибке, либо включить трассировку на стороне сервера, чтобы понять, почему он возвращает неуспешный ответ. .

В сообщении http://blogs.msdn.com/b/silverlightws/archive/2010/09/23/debugging-wcf-services-in-silverlight.aspx есть видео с большим количеством информации об отладке служб WCF в Silverlight.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...