現在、Silverlightアプリケーションから約7000個のオブジェクトを返すWCFサービスが呼び出されています。私たちはそれを6500のオブジェクトを粗く返すことができますが、セット全体を返すことはできません。 DTOからプロパティを削除しても、それを元に戻すと失敗する原因になります。大きなWCFの結果がSilverlightアプリケーションに送信される
当社のクライアントの設定は、このようです:
<basicHttpBinding>
<binding name="EchoWCFBinding" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647"></binding>
</basicHttpBinding>
当社のサーバ設定は、このようです:私たちはサービスに接続するためのChannelFactory <>を使用している
<basicHttpBinding>
<binding name="simpleHttp" maxReceivedMessageSize="2147483647" maxBufferPoolSize="2147483647" maxBufferSize="2147483647" closeTimeout="00:03:00" openTimeout="00:03:00" receiveTimeout="00:10:00" sendTimeout="00:03:00">
<readerQuotas maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" />
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Ntlm"/>
</security>
</binding>
</basicHttpBinding>
、我々は上maxReceivedMessageSizeを増やす場合クライアントはそれがintでなければならないと言う例外をスローします。
WCFサービスのセットアップは非常に難しく、同様のエラーが発生した場合は、数日間は失われました。完全な例外情報が得られない場合(つまり恐ろしい "NotFound"エラーが表示されている)、ロギングを有効にする必要があります。より多くの情報を得るための答えについては、SOの記事[http://stackoverflow.com/questions/2316201/silverlight-and-wcf-notfound-error]を参照してください。このブログ:[http://softarchitect.wordpress.com/2010/06/30/software-architecture-debugging-in-silverlight-wcf/]には、例外の内部を見るために使用したログに関する有用な情報もあります。 – perfectionist