[解決済み] 受信メッセージの最大メッセージサイズ枠(65536)...枠を増やすには、MaxReceivedMessageSizeプロパティを使用します。
質問事項
このおかしな問題に対処しようとしているんだ。大量のデータを取得する場合、クライアントの.configファイルのクォータを増やさなければならないことは知っていますが、私のクライアントがWCFサーバーに巨大なデータを"to"している場合はどうすればいいのでしょうか?
小さいサイズの入力パラメータを送信する場合は、全く正常に動作します。残念ながら、入力が大きくなると壊れてしまいます。
デバッガが言っています。
不正なリクエスト、400。
をトレースファイル上に表示します。
受信メッセージの最大サイズ枠(65536)は を超えました。割り当てを増やすには、MaxReceivedMessageSize プロパティを使用してください。
この受信データのクォータをサーバー側で増やす方法はありますか? もしあれば、どのように?
私のコンフィグ関連パーツのサンプルです。
<bindings>
<basicHttpBinding>
<binding name="MyBasicHttpBinding"
closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00"
sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false"
hostNameComparisonMode="StrongWildcard" maxBufferSize="2147483647"
maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="64" 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>
<services>
<service name="MyWcfService">
<endpoint address="http://myservice..."
binding="basicHttpBinding" bindingConfiguration="MyBasicHttpBinding"
name="MyBasicHttpBinding" contract="IMyContract" />
</service>
</services>
そして、これが私のクライアントサイドのコードです(動的に作成しています)。
var binding = new BasicHttpBinding();
binding.MaxBufferPoolSize = 2147483647;
binding.MaxBufferSize = 2147483647;
binding.MaxReceivedMessageSize = 2147483647;
binding.ReaderQuotas.MaxStringContentLength = 2147483647;
binding.ReaderQuotas.MaxArrayLength = 2147483647;
binding.ReaderQuotas.MaxDepth = 2147483647;
binding.ReaderQuotas.MaxBytesPerRead = 2147483647;
var address = new EndpointAddress("http://mylocalservice..");
ChannelFactory<IMyContract> factory = new ChannelFactory<IMyContract>(binding, address);
foreach (OperationDescription op in factory.Endpoint.Contract.Operations)
{
DataContractSerializerOperationBehavior dataContractBehavior =
op.Behaviors.Find<DataContractSerializerOperationBehavior>()
as DataContractSerializerOperationBehavior;
if (dataContractBehavior != null)
{
dataContractBehavior.MaxItemsInObjectGraph = 2147483646;
}
}
public IMyContract MyClientObject = factory.CreateChannel();
解決方法は?
を設定することができます。
MaxReceivedMessageSize
プロパティは,サービスの設定ファイルから取得できます.
クライアントの
MaxReceivedMessageSize
はメッセージにのみ影響します。
受信
が受信するメッセージには影響しません。 従って、サービスが大きなメッセージを受信できるようにするには、サービスの設定ファイルを設定する必要があります。
サービス設定例
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="MyBinding" maxReceivedMessageSize="2147483647" />
</wsHttpBinding>
</bindings>
<services>
<service name="MyService">
<endpoint address="http://myservice" binding="wsHttpBinding"
bindingConfiguration="MyBinding" contract="IMyServiceContract" />
</service>
</services>
</system.serviceModel>
上記は非常に簡略化された設定ファイルですが、関連する部分を示しています。 重要なのは、バインディングを定義して名前を付け、デフォルトとは異なる値を明示的に設定し、その名前をエンドポイント要素のbindingConfiguration属性で使用することです。
関連
-
[解決済み] デフォルトのエンドポイント要素が見つからない
-
[解決済み] Windows 7のsvcutil.exeはどこにあるのですか?
-
[解決済み] WCFメタデータに解決できない参照が含まれている
-
[解決済み] 受信メッセージの最大メッセージサイズ枠(65536)...枠を増やすには、MaxReceivedMessageSizeプロパティを使用します。
-
[解決済み] w3wp.exeとは何ですか?
-
[解決済み] REST API / ウェブサービスを保護するためのベストプラクティス [終了しました]。
-
[解決済み] WCF - メッセージサイズのクォータを増加させる方法
-
[解決済み】WCFサービスからきれいなJSONを返すにはどうすればいいですか?
-
[解決済み] すべてのWCF呼び出しにカスタムHTTPヘッダを追加するには?
-
[解決済み] WCFサービスのタイムアウト値を増加させる
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] デフォルトのエンドポイント要素が見つからない
-
[解決済み] (413) リクエストエンティティが大きすぎる|uploadReadAheadSize
-
[解決済み] Windows 7のsvcutil.exeはどこにあるのですか?
-
[解決済み] WCFメタデータに解決できない参照が含まれている
-
[解決済み] w3wp.exeとは何ですか?
-
[解決済み] WCFサービスのREST / SOAPエンドポイント
-
[解決済み】WCFとASMXのWebサービスの違いは何ですか?
-
[解決済み】Windows 8のIISでWCFサービスを提供できない。
-
[解決済み】WCFサービスからきれいなJSONを返すにはどうすればいいですか?
-
[解決済み] WcfTestClient.exe (Visual Studioの一部)はどこにありますか?