WCFの伝達長文字列(パラメータ)

6639 ワード

最近、WCF側がwordを生成する機能をしていて、Silverlight側がWCFを呼び出して一連のパラメータを渡すと、エラーが発生することがわかりました.何度もテストしたのは、画像のbyte[]を渡した結果、パラメータの長さが制限を超えてoverになったからです.また多くの資料の検索を経て、最終的に解決策を得て、主にwebに対して.configは正しい構成を行い、コードは以下の通りです.
<system.serviceModel>

    <behaviors>

      <serviceBehaviors>

        <behavior name="FileServiceBehavior">

          <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />

          <serviceDebug includeExceptionDetailInFaults="false" />

          <dataContractSerializer maxItemsInObjectGraph="2147483647"/>

        </behavior>

      </serviceBehaviors>

    </behaviors>

    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"

        multipleSiteBindingsEnabled="true" />

    <services>

      <service behaviorConfiguration="FileServiceBehavior" name="RichTextBoxDemo.Web.FileService">

        <endpoint address="" bindingConfiguration="basicHttpBinding_Generic" binding="basicHttpBinding" contract="RichTextBoxDemo.Web.IFileService"/>

      </service>

    </services>



    <bindings>

      <basicHttpBinding>

        <binding name="basicHttpBinding_Generic"

                 allowCookies="false" bypassProxyOnLocal="false"

     hostNameComparisonMode="StrongWildcard"

     maxBufferSize="2147483647" 

     maxBufferPoolSize="2147483647"

     maxReceivedMessageSize="2147483647"

     messageEncoding="Text" textEncoding="utf-8"

     transferMode="Streamed"

     useDefaultWebProxy="true">

          <readerQuotas maxDepth="2147483647"  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>

  </system.serviceModel>

注意長さが「2147483647」のところは注意と修正が必要なところです.よし、もう一度プログラムを開いて長い文字列(他のタイプ)を渡すと不思議な発見があり、NonFoundエラーは発生しません.