2012-07-04 2 views
0

Я принимал WCF WF в IIS. Со стороны клиента я пытаюсь получить доступ к службе на IIS, но получаю такую ​​ошибку:Рабочий процесс WCF, размещенный по проблеме IIS

The formatter threw an exception while trying to deserialize the message: Error in deserializing body of request message for operation 'GetData'. The maximum string content length quota (8192) has been exceeded while reading XML data. This quota may be increased by changing the MaxStringContentLength property on the XmlDictionaryReaderQuotas object used when creating the XML reader. Line 197, position 41.

Это мой web.config:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <configSections> 
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > 
     <section name="DataAccess.SharePoint.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    </sectionGroup> 
    </configSections> 
    <system.web> 
    <compilation debug="true" targetFramework="4.0" /> 
    </system.web> 
    <system.serviceModel> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior> 
      <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment --> 
      <serviceMetadata httpGetEnabled="true"/> 
      <!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information --> 
      <serviceDebug includeExceptionDetailInFaults="false"/> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> 
    </system.serviceModel> 
    <system.webServer> 
    <modules runAllManagedModulesForAllRequests="true"/> 
    </system.webServer> 
    <applicationSettings> 
    <DataAccess.SharePoint.Properties.Settings> 
     <setting name="DataAccess_SharePoint_Officecms_Lists" serializeAs="String"> 
     <value>http://site/_vti_bin/lists.asmx</value> 
     </setting> 
    </DataAccess.SharePoint.Properties.Settings> 
    </applicationSettings> 
</configuration> 

Это мой клиент app.config:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <system.serviceModel> 
     <bindings> 
      <basicHttpBinding> 
       <binding name="BasicHttpBinding_IService" closeTimeout="00:01:00" 
        openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00" 
        allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" 
        maxBufferSize="2147483647" maxBufferPoolSize="2147483647" 
        maxReceivedMessageSize="2147483647" messageEncoding="Text" 
        textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true"> 
        <readerQuotas maxDepth="32" maxStringContentLength="2147483647" 
         maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" 
            /> 
        <security mode="None"> 
         <transport clientCredentialType="None" proxyCredentialType="None" 
          realm="" /> 
         <message clientCredentialType="UserName" algorithmSuite="Default" /> 
        </security> 
       </binding> 
      </basicHttpBinding> 
     </bindings> 
     <client> 
      <endpoint address="http://server2008/Services/Search.xamlx" 
       binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IService" 
       contract="SearchService.IService" name="BasicHttpBinding_IService" /> 
     </client> 
    </system.serviceModel> 
</configuration> 

Не могли бы вы проверить мои конфиги и изменить и объяснить, что я сделал неправильно?

ответ

0

Получаете ли вы это сообщение на сервере или на клиенте? Если сообщение от клиента к серверу больше, чем ограничение по умолчанию, вам нужно увеличить его в вашем web.config.

Вы можете управлять привязками в web.config, добавив в разделе system.serviceModel:

<bindings> 
     <basicHttpBinding> 
     <binding> 
      <readerQuotas maxStringContentLength ="<your max here>"/> 
     </binding> 
     </basicHttpBinding> 
    </bindings> 
Смежные вопросы