問題タブ [wcf-binding]

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 投票する
4 に答える
74009 参照

.net - 最大配列長クォータ

画像のサイズを変更するための小さな WCF/WPF アプリを作成していますが、クライアントからサービスにサイズ 28K の画像を送信しようとすると、WCF は私に悲しみを与えています。小さい画像を送信すると、サービスは正常に機能します。私はすぐにこれが構成の問題であると想定し、バインディング構成の MaxArrayLength プロパティに関する投稿を見て Web をトロールしました。クライアントとサーバーの両方でこれらの設定の制限を最大 2147483647 に引き上げましたが、それでも次のエラーが発生します。

メッセージを逆シリアル化しようとしているときにフォーマッタが例外をスローしました: パラメータhttp://mywebsite.com/services/servicecontracts/2009/01:OriginalImageを逆シリアル化しようとしているときにエラーが発生しました。InnerException メッセージは、「System.Drawing.Image 型のオブジェクトの逆シリアル化でエラーが発生しました。XML データの読み取り中に、最大配列長のクォータ (16384) を超えました。このクォータは、XML リーダーの作成時に使用される XmlDictionaryReaderQuotas オブジェクトの MaxArrayLength プロパティを変更することで増やすことができます。詳細については、InnerException を参照してください。

クライアントとサーバーの構成を同じにしましたが、次のようになります。

私のクライアント設定は次のようになります:

これらの値を何に設定しても、wcf は 16384 より大きいため、ファイルをシリアル化できないというエラーが表示されます。何かアイデアはありますか?

更新: userPrincipalName タグの電子メール アドレスは、プライバシー保護のために変更されています

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

c# - WcfTestClient をカスタム トランスポート チャネルで動作させることは可能ですか?

ゴール

私が考案しているホスティング フレームワーク内で、WCF を介してバニラ ソケット サーバーをホストし、接続できるようにしたいと考えています。私は、WCF を使用して、今日ソケット プログラマーが手動で管理しなければならないトランスポートおよびプロトコル通信を体系化できるようにしたいと考えています。これにより、従来のソケットと独自のプロトコルのみを公開する Linux サーバー デーモンとの究極の相互運用性が実現します。この時点では、WcfTestClient を一般的に使用してトランスポート チャネル層を検証することにのみ関心があります。私の理解では、WcfTestClient は複雑なサービス メソッドをサポートしていません。

WcfTestClient をカスタム トランスポート チャネルで機能させることが可能だと思う人はいますか? このクライアントを汎用的に使用して、任意の数のカスタム トランスポート チャネルをテストできるとしたら、非常に便利です。

概要

私は、Windows SDK に含まれている WCF Udp サンプルを理解するために取り組んでいます。このサンプルは通常、C:\Program Files\Microsoft SDKs\Windows\v6.1\Samples\WCFSamples\TechnologySamples\Extensibility\Transport\Udp\CS にあります。 WCFSamples.zip ファイルが Samples ディレクトリから完全に抽出されていることを確認します。

これまでに行った手順は次のとおりです。

  • (成功): Visual Studio 2008 内でソリューションのサービスとクライアントを正常に実行します。

  • (成功): 通常は C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE にある WcfTestClient を使用して MEX エンドポイントに接続します

  • (失敗): WcfTestClient を使用して、ICalculatorContract または IDatagramContract サービス コントラクトからメソッドを実行しようとします。

たとえば、Hello() メソッドを実行すると、次のエラーが表示されます。

友好的なメッセージ:

サービスの呼び出しに失敗しました。考えられる原因: サービスがオフラインであるか、アクセスできません。クライアント側の構成がプロキシと一致しません。既存のプロキシは無効です。詳細については、スタック トレースを参照してください。新しいプロキシを開始するか、デフォルト構成に復元するか、サービスを更新することで、回復を試みることができます。

エラーの詳細:

コントラクト「IDatagramContract」を持つ ServiceEndpoint の CustomBinding に、TransportBindingElement がありません。すべてのバインディングには、TransportBindingElement から派生したバインディング要素が少なくとも 1 つ必要です。System.ServiceModel.Channels.Binding.EnsureInvariants(String contractName) で System.ServiceModel.Description.ServiceEndpoint.EnsureInvariants() で System.ServiceModel.Channels.ServiceChannelFactory.BuildChannelFactory(ServiceEndpoint serviceEndpoint) で System.ServiceModel.ChannelFactory.CreateFactory() でSystem.ServiceModel.ChannelFactory.OnOpening() で System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan タイムアウト) で System.ServiceModel.ChannelFactory.EnsureOpened() で System.ServiceModel.ChannelFactory1.CreateChannel(EndpointAddress address, Uri via) at System.ServiceModel.ChannelFactory1.CreateChannel() System.ServiceModel.ClientBase で1.CreateChannel() at System.ServiceModel.ClientBase1.CreateChannelInternal() で System.ServiceModel.ClientBase`1.get_Channel() で DatagramContractClient.Hello()

クライアント エラーについて

UdpTransport プロジェクトで定義されている UdpTransportBindingElement は、以下に示すように、間違いなく TransportBindingElement から派生しているため、WcfTestClient 構成ファイルに何かが欠けているに違いないと考えています。また、テスト クライアントに詳細情報を提供する必要があるのではないかと考えています。 . 基本的に、Udp ソリューションのクライアント プロジェクトの System.ServiceModel セクションを WcfTestClient の構成ファイルにコピーし、トランスポート アセンブリ dll をテスト クライアントと同じフォルダーにコピーしようとしましたが、同じエラーが発生します。

私の理解では、サービスで単純なメソッドを呼び出すために必要な情報を取得するには、MEX エンドポイントで十分であるはずです。もちろん、すぐに使えるトランスポート チャネルをテストするように設計されたクライアントをカスタム トランスポート チャネルで動作させようとしていることを考えると、話にはおそらくもっと多くのことがあることは理解しています。

ITransportPolicyImport はカスタム トランスポート チャネルにとって重要ですか?

ITransportPolicyImport についてお尋ねします。これは TransportBindingElement の標準 WCF 派生によって実装されるインターフェイスですが、Udp サンプルはこのインターフェイスを実装しておらず、Web 検索や Safari で役立つものを見つけることができません。それは関係ないかもしれません。

例えば...

サンプル構成...

サービス構成は次のようになります。

ソリューションのクライアント構成は次のようになります。

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

c# - ロジックが先、WCF セキュリティは後?

私は、net.tcp を介してクライアント アプリの n インスタンス (私のオフィスの別のプログラマーによって開発されている) と通信する WCF サービスに取り組んでいます。

少なくともロールアウトが近づくまでは、この段階でこれを設定する必要はないと感じたため、現時点ではセキュリティなしで net.tcp を使用しています。

WCF アプリケーションの開発中に、標準バインディング (私の場合は net.tcp) をセキュリティなしで使用し、ビジネス ロジックが完成したら、すべてのセキュリティ要件を実装しても害はありますか? セキュリティの実装後に機能しない可能性があることに注意する必要があることはありますか?

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

wcf - WCF バインディング

したがって、net.tcp と net.pipe の両方でリッスンしている WCF サービスがあります。WCF プロキシ クライアントを生成しましたが、tcp または名前付きパイプ経由で接続できるようにしたいと考えています。app.config ではなく、コードで設定したいのです。

WCF クライアントは実行時にエンドポイント アドレスを取得するため、"net.tcp://mymachine:10001/MyService" または "net.pipe://localhost/MyService" のようになります。Uri スキームに基づいて正しい NetTcpBinding または NetNamedPipeBinding を使用するだけだと思いますが、そのようには見えません。

名前付きパイプまたは tcp バインディングのいずれかを取るようにプロキシを設定することはできませんか?エンドポイント アドレスに基づいてプロキシが選択します。

編集:さて、スキームを盗聴し、バインディングを設定します。

しかし、接続エラーが発生します - 「通信オブジェクト System.ServiceModel.Channels.ServiceChannel は、Faulted 状態であるため通信に使用できません。」

Binding を BindingElement に変更し、CustomBinding で NamedPipeTransportBindingElement、TcpTransportBindingElement などを使用すると動作しますが、違いが何であるかわかりません。

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

performance - サードパーティ コンポーネントの WCF バインディングを変更するには?

WCF で構築されたサードパーティ アプリケーションがあります。これは Windows サービスとしてインストールされ、デフォルトで をサポートwsHttpBindingbasicHttpBindingます。

またはなどのより最適化されたバインディングに切り替える方法はありますtcpBindingnamed pipes?

同じサーバー内でサービスを使用するため、名前付きパイプはオプションです。

Windows サービスの .config ファイルを変更するだけで、サード パーティで実行できるかどうかを知りたいです。

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

wcf - 異なるサービス間で複合型を再利用するにはどうすればよいですか?

まったく同じであるが、次のようなパラメーターとして電子メールオブジェクトを取る複合型を使用する2つの別個のJavaサービスがあります。

サービスは次のようになります。

emailBasketBallTeam(メール); emailTennisTeam(メール);

電子メール オブジェクトのコントラクトを指定したり、完全に異なる名前空間にあるにもかかわらず、別のサービスで電子メール オブジェクトを再利用したりする方法はありますか?

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

wcf -

WCFのnetTcpBindingのcloseTimeoutのデフォルト値は何ですか?


WCFのnetTcpBindingのcloseTimeoutのデフォルト値は何ですか?


述語は、次のシグネチャを持つ単純なメソッドです。

これは、タイプTのオブジェクトによって検証できるかどうかを示す条件を表します。

.Whereこれは、句内の列挙可能オブジェクトをフィルタリングするためのリンクで使用されます。

ブール値を返すラムダを使用することもできます。

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

http - WCF には独自の Web サーバーがありますか?

私は偶然にも、Windows サービスでホストされている WCF サービスが HTTP バインドで正しく動作しないことを発見しました。独自の Web サーバーを実装しているようですが、この機能がどこにも言及されているのを見たことがなく、HTTP リスナーの機能 (ワーカー スレッドなど) に関するドキュメントも見つかりません。

ありがとう

0 投票する
4 に答える
1733 参照

.net - WCF の問題をどのようにデバッグしますか?

WS バインディングを使用している WCF サービスで奇妙な問題が発生しています。セッションなし(セキュリティ/信頼性)で構成すると、問題なく動作しますが、セッションではそうではありません。たとえば、セキュリティ (メッセージ セキュリティ、Windows 資格情報) を構成すると、10 回目または 11 回目の呼び出し後にタイムアウトが発生します。私のサービスは別の WCF サービスを呼び出しますが、両方のサービスが同じバインディング パラメーターで構成されています。

このような問題をどのようにデバッグしますか? トレースをオンにして SvcTraceViewer を使用する以外に、どのツールを使用しますか?