2012-02-10 11 views
0

私はWCF RESTサービス(webHttpEndpoint)にAJAXリクエストで送信するためにjQueryの/ JavaScriptクライアントを使用していると私は...WCFへのJavascript - MaxStringContentLength例外

System.Xml.XmlExceptionを次の例外を取得しています: XMLデータを読み取っているときに最大文字列コンテンツ長の制限(8192)を超えました。この制限は、XMLリーダーの作成時に使用されるXmlDictionaryReaderQuotasオブジェクトのMaxStringContentLengthプロパティを変更することによって増加させることができます。ここで

は私のsystem.serviceModelのweb.configファイルの定義は、私は...しかし、それは有効になりません.....以下の結合を追加

<webHttpBinding> 
    <binding name="webHttpBindingDev"> 
     <readerQuotas maxDepth="2147483647" 
        maxStringContentLength="2147483647" 
        maxArrayLength="2147483647" 
        maxBytesPerRead="2147483647" 
        maxNameTableCharCount="2147483647" /> 
    </binding> 
    </webHttpBinding> 
を試してみました...

<system.serviceModel> 
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" 
           multipleSiteBindingsEnabled="true" /> 
    <bindings> 
     <basicHttpBinding> 
     <binding name="MembershipBinding"> 
      <security mode="TransportWithMessageCredential"> 
      <message clientCredentialType="UserName" /> 
      </security> 
     </binding> 
     <binding name="userHttps"> 
      <security mode="Transport" /> 
     </binding> 
     </basicHttpBinding> 
    </bindings> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="CommonSvcBehavior"> 
      <serviceCredentials> 
      <userNameAuthentication userNamePasswordValidationMode="MembershipProvider" 
            membershipProviderName="AspNetSqlMembershipProvider" /> 
      </serviceCredentials> 
      <serviceAuthorization principalPermissionMode="UseAspNetRoles" 
           roleProviderName="MySqlRoleProvider" /> 
      <serviceMetadata httpGetEnabled="true" /> 
      <serviceDebug includeExceptionDetailInFaults="true" /> 
     </behavior> 
     <behavior name="AuthenticationServiceTypeBehaviors"> 
      <serviceMetadata httpGetEnabled="true" /> 
     </behavior> 
     <behavior name=""> 
      <serviceMetadata httpGetEnabled="true" /> 
      <serviceDebug includeExceptionDetailInFaults="false" /> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <standardEndpoints> 
     <webHttpEndpoint> 
     <standardEndpoint name="" 
          crossDomainScriptAccessEnabled="false" 
          helpEnabled="true" 
          automaticFormatSelectionEnabled="true" /> 
     </webHttpEndpoint> 
    </standardEndpoints> 
    </system.serviceModel> 

です

お手伝いできますか?

+0

10の質問ではなく1つの受け入れ答えを変更する.....、次の必要性を、それを考え出しましたか? –

答えて

0

あなたはこのように、<service>セクションで<endpoint>要素のbindingConfiguration属性に結合する名前を割り当てる必要が結合するためのデフォルト値を上書きする場合:

<services> 
    <service name="MyService"> 
    <endpoint address="" binding="basicHttpBinding" bindingConfiguration="MembershipBinding" contract="MyService.IMyContract" /> 
    </service> 
</services> 

<services>セクションでは、中に入る

<system.serviceModel>セクション。

私はこれがRESTful WCFで動作することを100%保証しているわけではありませんが、私が行ったリサーチからはそうすべきでした。

覚えておくべき重要なことは、指定されたエンドポイントで使用するバインディングをサービスに指示する必要があり、デフォルト値以外のバインディングの設定値が必要な場合は、エンドポイントに設定します。

1

私はstandardEndPointsに

<standardEndpoints> 
    <webHttpEndpoint> 
    <standardEndpoint name="" 
         crossDomainScriptAccessEnabled="false" 
         helpEnabled="true" 
         automaticFormatSelectionEnabled="true"> 
     <readerQuotas maxDepth="2147483647" 
        maxStringContentLength="2147483647" 
        maxArrayLength="2147483647" 
        maxBytesPerRead="2147483647" 
        maxNameTableCharCount="2147483647" />  
    </standardEndpoint> 
    </webHttpEndpoint> 
</standardEndpoints> 
関連する問題