2016-02-03 5 views
0

У меня есть простой запрос JavaScript JSON, который строит объект для отправки через запрос JSON на мой веб-сервер C#.JSON Limited to 1180 Characters

Всякий раз, когда строка, возвращаемая stringy, имеет длину более 1180 символов, WebMethod не вызывается на сервере.

С моей точки зрения, нет ограничений на количество строковых данных, которые клиент может отправлять через JSON. Я понимаю, что ограничение находится на стороне сервера, пытаясь принять запрос с параметризацией.

Есть ли где-то в web.config, что я могу увеличить этот предел в 1180?

Моя текущая конфигурация;

<?xml version="1.0"?> 
<configuration> 
    <connectionStrings> 
    <add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;initial catalog=aspnetdb" providerName="System.Data.SqlClient"/> 
    <add name="ApplicationServices2" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;initial catalog=trimweb" providerName="System.Data.SqlClient"/> 
    <add name="ApplicationServices3" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;initial catalog=Customers" providerName="System.Data.SqlClient"/> 
    <add name="ApplicationServices4" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;initial catalog=OrderUpdate;User ID=test1;Password=test1;" providerName="System.Data.SqlClient"/> 
    </connectionStrings> 
    <system.serviceModel> 
     <serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> 

     <behaviors> 
     <endpointBehaviors> 
      <behavior name="webHttpBehavior"> 
      <webHttp /> 
      </behavior> 
     </endpointBehaviors> 
     </behaviors> 
     <bindings> 
     <webHttpBinding> 
      <binding name="webHttpBindingWithJsonP" crossDomainScriptAccessEnabled="true" /> 
     </webHttpBinding> 

     </bindings> 
     <services> 
     <service name="ServiceSite.CustomersService"> 
      <endpoint address="" binding="webHttpBinding" 
        bindingConfiguration="webHttpBindingWithJsonP" contract="ServiceSite.CustomersService" 
        behaviorConfiguration="webHttpBehavior"/> 
     </service> 
     </services> 
    </system.serviceModel> 

    <system.web> 
     <compilation debug="true" targetFramework="4.0" /> 
    </system.web> 
    <system.webServer> 
     <modules runAllManagedModulesForAllRequests="true"/> 
    </system.webServer> 

</configuration> 

ответ

1

Youll необходимо изменить webHttpBinding на что-то вроде ниже:

<webHttpBinding> 
     <binding name="webHttpBindingWithJsonP" crossDomainScriptAccessEnabled="true" maxReceivedMessageSize="20000000" maxBufferSize="20000000" maxBufferPoolSize="20000000"/> 
     <readerQuotas maxDepth="32" maxArrayLength="200000000" maxStringContentLength="200000000"/> 
    </webHttpBinding> 

See the docs for <webHttpBinding> here

Примечание: Увеличение этого значения не является достаточным в режиме совместимости с ASP.NET. Вы также должны увеличить значение httpRuntime (см. httpRuntime).

Это должно быть что-то вроде:

<httpRuntime 
    maxQueryStringLength = "2048" 
    maxRequestLength="4096" 
    maxUrlLength = "260" 
    requestLengthDiskThreshold="80"/> 

(Увеличение количества по мере необходимости)

+0

обрадовалась, спасибо большое за вашу постоянную поддержку. Это сделало мой предел, но только до ~ 1250 :( – clamchoda

+0

@clamchoda Пожалуйста, см. Мое обновление – DelightedD0D

+1

Расслабьтесь, я не могу вас отблагодарить. Я очень благодарен за вашу помощь – clamchoda

 Смежные вопросы

  • Нет связанных вопросов^_^