問題タブ [readerquotas]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1470 参照

wcf - Why WCF class Binding doesn't have member ReaderQuotas?

I'm wondering why the class Binding in WCF doesn't have a property ReaderQuotas, while its subclasses BasicHttpBinding and WSHttpBinding does.

This fact makes coding a little hard. For me, I use below code to extract binding information from MEX endpoint URI. However, it just got Binding. If I want to change ReaderQuotas of the binding, I have to downcast it to subclasses of Binding, but I cannot tell the exact binding at runtime.

Anybody know why WCF is designed in such way?

Is there any way to work around this limitation?

0 投票する
3 に答える
23928 参照

c# - エンドポイントの ReaderQuotas をプログラムで変更する

サービスへの動的クライアントがあります。エンドポイントバインディングの ReaderQuotas プロパティを変更するにはどうすればよいですか?

私はこのように試しましたが、うまくいきません...

これを行った後でも、ReaderQuotas の値はデフォルトのままです。

私もこのように試しましたが、まだ動作しません:

サービスに 8kb 以上を送信するには、これが必要です。

0 投票する
2 に答える
1881 参照

wcf - WCF - REST サービスで ReaderQuoatas を増やす

JSON文字列を受け入れるWCF RESTサービスがあります

パラメータの 1 つが大きな数字の文字列です

これにより、次のエラーが発生します。これは、トレースして SVC Trace Viewer を使用することで確認できます。

タイプ CarConfiguration のオブジェクトのデシリアライズ中にエラーが発生しました。XML データの読み取り中に、文字列コンテンツの最大長クォータ (8192) を超えました。このクォータは、XML リーダーの作成時に使用される XmlDictionaryReaderQuotas オブジェクトの MaxStringContentLength プロパティを変更することで増やすことができます。

今、私はこれを修正する方法をアドバイスするあらゆる種類の記事を読みました

それらはすべて、サーバーとクライアントのさまざまな構成設定を増やすことを推奨しています

例: WebService 呼び出しで文字列をシリアル化するときにエラーが発生しました

http://bloggingabout.net/blogs/ramon/archive/2008/08/20/wcf-and-large-messages.aspx

http://social.msdn.microsoft.com/Forums/en/wcf/thread/f570823a-8581-45ba-8b0b-ab0c7d7fcae1

だから私の設定ファイルは次のようになります

私の問題は、サーバーでこれを変更できることですが、REST サービスとしてクライアントに WCF 構成設定がなく、 WebClientオブジェクトを使用して http 要求を作成しているだけです。

何か案は?

0 投票する
2 に答える
40321 参照

wcf - WCF サービスの最大配列長クォータ (16384) を超えました

wsf サービスとクライアント アプリケーションがあります。クライアントとサービスを通信しようとしているときに、次のメッセージが表示されました。

"メッセージのデシリアライズ中にフォーマッタが例外をスローしました: パラメータhttp://tempuri.org/:blobのデシリアライズ中にエラーが発生しました。 XML データの読み取り中に、配列の最大長クォータ (16384) を超えました。このクォータは、XML リーダーの作成時に使用される XmlDictionaryReaderQuotas オブジェクトの MaxArrayLength プロパティを変更することで増やすことができます。行 1、位置 25931.'.詳細については、InnerException を参照してください. "

customBinding 要素がありますが、「readerQuotas」セクションを挿入できません。クライアント構成とサービス構成の両方に、次のバインド要素があります。

助けてくれてありがとう:)

0 投票する
1 に答える
1801 参照

wcf - WCFサービスのリーダークォータを増やすにはどうすればよいですか?

誰もがこれを手伝ってくれるとは思っていませんが、やってみましょう。

WCFサービスを使用して文字列にシリアル化されたかなり大きなJSONドキュメントをプルダウンするWinFormsアプリがあります。文字列のクライアントのリーダークォータを8192000(任意ですがほとんどの場合に適しています)に変更し、サービスを8192000の明示的なリーダークォータを持つカスタムバインディングに配置しました

メモ帳でサービス参照を目で確認すると、.svcinfoファイルのクォータは8192に設定されていますが、これは赤いニシンである可能性があります。

私はテザーの終わりにいます、私はグーグルで見つけることができるすべてのアドバイスに従いました:

名前を付けるために、私がここで見つけることができる2つとすべての提案された答え、すなわち

そして私はこれを見ました:

http://wildermuth.com/2009/09/10/Using_Large_Message_Requests_in_Silverlight_with_WCF

これは、上記の1つ、または「最近閉じたタブ」リストから取得していない他の多くのことの1つに対する応答でした。

基本的に、この制限を増やすために他に何をするかは考えられませんが、それでも、長さが64kを超える文字列に最初に遭遇すると、制限はまったく変更されていないと主張します。

では、WinFormsアプリのこの1つの設定を変更して、トランザクションの両端でJSONデータを文字列としてシリアル化してから逆シリアル化するための本当に基本的なステップバイステップを誰かに教えてもらえますか?他の多くのアドバイスは、Silverlightまたはその他のシナリオに関するものであり、何らかの理由でこのケースに影響を与えることはできません。

0 投票する
2 に答える
8622 参照

wcf - WCFでの最大配列長クォータの例外

ファイルをアップロードするためのWCFサービスを作成していますが、バイト配列に16384を超える要素がある場合は例外がスローされます。

これは例外の詳細です:

フォーマッタは、メッセージの逆シリアル化を試みているときに例外をスローしました:操作'CreateDocument'の要求メッセージの本文の逆シリアル化中にエラーが発生しました。XMLデータの読み取り中に、配列の最大長のクォータ(16384)を超えました。このクォータは、XMLリーダーの作成時に使用されるXmlDictionaryReaderQuotasオブジェクトのMaxArrayLengthプロパティを変更することで増やすことができます。1行目、位置22862。

クライアントとサーバーの両方の構成により、アレイの最大長のクォータが2147483647に設定されます。

クライアント構成:

サーバー構成:

0 投票する
1 に答える
668 参照

c# - SharePoint 2010 WCF サービスの MaxItemsInObjectGraph の問題

SharePoint 2010 に展開されたカスタム WCF サービスで問題が発生しています。クライアントにデータをインポートしようとすると、次のエラーが表示されます。

http://shaunedonohue.blogspot.com/2011/03/reader-quotas-for-wcf-services-in_4706.htmlで概説されているメカニズムを使用して多くの変更を加えようとしましたが、まだこのエラーが発生します -これらのクォータ設定は、MaxItemsInObjectGraph 設定とは関係がないようです。サービスの ServiceBehaviour 属性でこの設定を変更しても機能しないようです。

以前にこの問題に遭遇した人はいますか?

0 投票する
2 に答える
11611 参照

wcf - 文字列コンテンツの最大長クォータ(8192)

操作'CreateTransactionEntity'の応答メッセージの本文の逆シリアル化中にエラーが発生しました。XMLデータの読み取り中に、文字列コンテンツの最大長クォータ(8192)を超えました。このクォータは、XMLリーダーの作成時に使用されるXmlDictionaryReaderQuotasオブジェクトのMaxStringContentLengthプロパティを変更することで増やすことができます。

ねえ、web.configファイルに実物よりも大きいreaderQuotaノードがあるのに、このエラーが発生し続けます...

この件についてインターネットを閲覧した後、私はまともな答えを思い付くことができないようです。何かアドバイスがあれば本当にありがたいです。

0 投票する
1 に答える
2490 参照

asp.net - ASP.NETアプリケーションのreaderQuotasに関する問題

ASP.NET4.0アプリケーションがあります。

.svcWebサービスは、ソースをリンクするファイルを使用してホストされます(サービスの実装)。Webサービス.svcファイルはWebServs、アプリケーションルートディレクトリのディレクトリ内にありますMyApp/WebServs/mysvc.svc

Webサービスは、Web.config(ルートディレクトリ内の)を使用して設定されます。

わかった!

Webサービスを呼び出すときは、この一般的に使用されるロジックをカプセル化するために、ルーチンを使用してチャネルを作成します。

このルーチンはクライアントによって呼び出されます。WhilkeはWeb.config、サービスサーバー側を構成するために使用されます。

大きなメッセージ(小さなメッセージでも大丈夫)でサービスを実行しようとすると、次のようになります。

フォーマッタは、メッセージを逆シリアル化しようとしたときに例外をスローしました。パラメータ http://((Namespace)):((Operation))を逆シリアル化しようとしたときにエラーが発生しました。InnerExceptionメッセージは次のとおりです。'タイプ((Type))、App_Code.s5qoir2n、Version = 0.0.0.0、Culture = neutral、PublicKeyToken=null]]のオブジェクトの逆シリアル化中にエラーが発生しました。XMLデータの読み取り中に、文字列コンテンツの最大長クォータ(8192)を超えました。このクォータは、XMLリーダーの作成時に使用されるXmlDictionaryReaderQuotasオブジェクトのMaxStringContentLengthプロパティを変更することで増やすことができます。31行目、1309位。詳細については、InnerExceptionを参照してください。

わからない。サービスとクライアントの両方に共通の設定があり、これはデフォルト値を読み取りますか????? さらに、他の多くのユーザーがここStackOverflowの手順に従って実行しました。

私を助けてください。ありがとうございました

0 投票する
1 に答える
3843 参照

wcf - ReaderQuotasをサポートするWCFのカスタムメッセージエンコーダー

ここで答えが見つかりました(最後の投稿):http ://social.msdn.microsoft.com/Forums/eu/wcf/thread/f5c0ea22-1d45-484e-b2c0-e3bc9de20915

カスタム(TextOrMtomEncoder)の実装に関する最後の問題が1つあります。これは、ReaderQuotasの実装です。

私はウェブをたくさん検索しましたが、パズルの最後のピースを理解することができません。

'BindingElementExtensionElement'と'MessageEncodingBindingElement'の実装を含むクラスがあります。

MessageEncodingBindingElement実装には、次のオーバーライドが含まれています。

これは、TextMessageEncodingのようなデフォルトの.NETMessageEncoding実装から「借用」しました。

MSDNがそう言っているので、これは正しい実装でなければなりません。

構成はweb.configから正常に読み込まれ、両方のクラスのReaderQuotasプロパティが正しく設定されていることがわかりますが、.NETがMessageEncodingBindingElement実装からReaderQuotas構成を読み取っていないようです。

私の推測では、MessageVersionはこのメソッドを介して要求されるため、.NETはGetPropertyメソッドを使用して構成をロードします。ただし、問題は、TがXmlDictionaryReaderQuotasと等しくなることはないため、ReaderQuotasが要求され始めることはないということです。

私の質問の根本は奇妙なことです。私はIIS7.5を搭載したWindows7x64マシンで開発しています。「大きな」ファイル(100 KBなど)の投稿は私のマシンで機能します。しかし、サービスをWindows Server 2008 R2に展開すると(2つの異なるサーバーを試した)、次のエラーが発生します。

フォーマッタは、メッセージを逆シリアル化しようとしたときに例外をスローしました。パラメータ http://socialproxy.infocaster.net:argumentを逆シリアル化しようとしたときにエラーが発生しました。InnerExceptionメッセージは次のとおりです。'タイプSystem.Objectのオブジェクトの逆シリアル化中にエラーが発生しました。XMLデータの読み取り中に、配列の最大長のクォータ(16384)を超えました。このクォータは、XMLリーダーの作成時に使用されるXmlDictionaryReaderQuotasオブジェクトのMaxArrayLengthプロパティを変更することで増やすことができます。1行目、1584の​​位置。詳細については、InnerExceptionを参照してください。

そして、私が言ったように、それは私のマシンで動作します:-/

誰かが私がこれを解決する方法を教えてもらえますか?

よろしくお願いします!

WCFサービス構成: