WCFの伝達長文字列(パラメータ)
6639 ワード
最近、WCF側がwordを生成する機能をしていて、Silverlight側がWCFを呼び出して一連のパラメータを渡すと、エラーが発生することがわかりました.何度もテストしたのは、画像のbyte[]を渡した結果、パラメータの長さが制限を超えてoverになったからです.また多くの資料の検索を経て、最終的に解決策を得て、主にwebに対して.configは正しい構成を行い、コードは以下の通りです.
注意長さが「2147483647」のところは注意と修正が必要なところです.よし、もう一度プログラムを開いて長い文字列(他のタイプ)を渡すと不思議な発見があり、NonFoundエラーは発生しません.
<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エラーは発生しません.