2013-05-20 4 views
0

Я получаю The maximum string content length quota (8192) has been exceeded while reading XML data. в ajax POST call.Не удалось найти базовый адрес ИЛИ максимальную длину длины длины строки (8192)?

Я добавил bindingConfiguration="UsernameWithTransport" в <endpoint>, а также добавил <readerQuotas> после этого я получаю Could not find a base address that matches scheme https for the endpoint with binding WebHttpBinding. Registered base address schemes are [http] исключение.

См. Ниже Мой файл web.config.

<system.serviceModel> 
<behaviors> 
    <serviceBehaviors> 
     <behavior name="metadataBehavior"> 
      <serviceMetadata httpGetEnabled="true" httpGetUrl="" httpsGetEnabled="false"/>    
      <serviceDebug httpHelpPageEnabled="true" includeExceptionDetailInFaults="true" /> 
     </behavior> 
    </serviceBehaviors> 
    <endpointBehaviors> 
    <behavior name="Company.CostReduction.EditInitiativesAspNetAjaxBehavior"> 
     <enableWebScript /> 
    </behavior> 
    </endpointBehaviors> 
</behaviors> 
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" /> 
<services> 
    <service name="Company.CostReduction.EditInitiatives" behaviorConfiguration="metadataBehavior"> 
     <host> 
      <baseAddresses> 
       <add baseAddress="http://localhost:57771/EditInitiatives.svc" /> 
      </baseAddresses> 
     </host> 
     <endpoint address="" behaviorConfiguration="Company.CostReduction.EditInitiativesAspNetAjaxBehavior" binding="webHttpBinding" bindingConfiguration="UsernameWithTransport" contract="Company.CostReduction.EditInitiatives" /> 
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
    </service> 
</services> 
<bindings> 
    <webHttpBinding> 
    <binding name="UsernameWithTransport"> 
     <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> 
     <security mode="Transport"> 
     <transport clientCredentialType="Basic" /> 
     </security> 
    </binding> 
    </webHttpBinding> 
</bindings> 

Что такое здесь не так?

ответ

0

Проблемы начинаются здесь

<host> 
     <baseAddresses> 
      <add baseAddress="http://localhost:57771/EditInitiatives.svc" /> 
     </baseAddresses> 
    </host> 

Вы выбрали режим безопасности как «Транспорт» в конфигурации WebHttpBinding. Но ваш базовый адрес - http. Это должно быть https. (Вы не можете разместить службу HTTPS с сервером разработки по пути, вы должны разместить его в IIS.) Измените базовый адрес на что-то вроде этого: https://localhost:57771/EditInitiatives.svc

проблема продолжает здесь:

<behavior name="metadataBehavior"> 
     <serviceMetadata httpGetEnabled="true" httpGetUrl="" httpsGetEnabled="false"/>    
     <serviceDebug httpHelpPageEnabled="true" includeExceptionDetailInFaults="true" /> 
    </behavior> 

вы собираются разместить вашу службу с безопасностью транспорта. Вы должны установить для httpGetEnabled значение false и httpsGetEnabled для true. Это противоположная настройка текущей конфигурации.

и, наконец, для размещения метаданных с транспортной безопасности вам необходимо изменить здесь, а также:

<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 

должен быть изменен на:

<endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" /> 

Попробуйте эти изменения и размещать какие-либо больше ошибок вы здесь.

Надеюсь, это поможет!