問題タブ [channel]
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.
wcf - WCFコールバックチャネルに障害が発生しました
wcfクライアントの再接続ロジックを実装しようとしています。現在のチャネルが障害状態になった後、新しいチャネルを作成する必要があることを認識しています。これは、チャネル障害のあるイベントハンドラーで行いました。
しかし、単体テストでは、「通信オブジェクトSystem.ServiceModel.Channels.ServiceChannelは、障害状態にあるため、通信に使用できません」という例外が発生します。
コールバックチャネルにまだ障害が発生している可能性はありますか?はいの場合、コールバックチャネルを置き換えるにはどうすればよいですか?
c# - WCF クライアント プロキシの初期化
私は WCF サービスを使用しており、VS 2008 サービス リファレンスを使用してそのプロキシを作成しました。
WCF サービス メソッドを呼び出す最適なパターンを探しています
- サービス メソッドを呼び出すたびにクライアント プロキシ インスタンスを作成し、それが完了したらすぐにクライアントを閉じる必要がありますか? クライアント アプリケーションのプロファイリングを行ったところ、プロキシ クライアントの初期化中にチャネルを取得するのに多くの時間がかかっていることがわかりました。
- 一度だけのインスタンスを使用して再初期化のオーバーヘッドを取り除くことができるように、クライアント プロキシにシングルトン パターンを使用する必要がありますか? このアプローチに隠れた問題はありますか?
私は .Net Framework 3.5 SP1 を使用しておりbasicHttp
、ほとんどカスタマイズせずにバインドしています。
c# - WCF の最大メッセージ サイズ クォータ
WCF サービス (IIS ではなく Windows サービスでホストされている) を呼び出そうとすると、次のエラーが発生します。
リモート チャネルの受信メッセージの最大メッセージ サイズ クォータを超えました。詳細については、サーバー ログを参照してください。
MaxReceivedMessageSize と ReaderQuotas を最大値まで増やしてみましたが、うまくいきませんでした。
また、ログを有効にして、「送信」されるメッセージのサイズを確認しました。それは間違いなく最大値にはほど遠いです。372KB の XML にシリアル化されたオブジェクトを送信することについて話しています。
2 つの質問:
メッセージが参照している「サーバーログ」を知っている人はいますか? EventViewerを確認しましたが、何も表示されません...
ここで適用される他の構成設定を知っている人はいますか?
go - 共有メモリ対 Go チャネル通信
Go のスローガンの 1 つは、メモリを共有して通信しないでください。代わりに、通信によってメモリを共有します。
私は、Go が同じマシン上で実行されている 2 つの異なる Go コンパイル済みバイナリを相互に通信できるようにするかどうか (つまり、クライアント サーバー) と、C++ の boost::interprocess と比較してどれくらい高速になるかを考えています。これまで見てきたすべての例は、同じプログラム ルーチン間の通信を示しているだけです。
シンプルな Go の例 (個別のクライアント コードとサーバー コードを使用) をいただければ幸いです。
wcf - コールバックの使用時に WCF 二重チャネルが閉じられる
私の WCF サービスは netTcpBinding を使用し、コールバック オブジェクトを持っています。
複数の同時クライアントにサービスを提供し、セッションを維持する必要があるため、サービスは次のように装飾されています
スレッドのデッドロックを回避するために、コールバック クラスは次のように装飾されています。
SynchronizationContext
UIスレッドでメソッドを実行するために使用します。
問題は、チャネルが理由もなく閉じられる場合があることです (ICommunicationObject.Closing
イベントが発生します)。その後、後続のサービス呼び出しで例外が発生します。
トレース ファイルを見ると、最後のメッセージはコールバック コールですが、コールバック メソッドは呼び出されません。例外はありません。
いくつかのデバッグの後、これは同期操作の途中でコールバック呼び出しが行われた場合にのみ発生することがわかりました。手順は次のとおりです。
A
を使用したサービス メソッドへの呼び出しIsOneWay=true
B
を使用したサービス メソッドへの呼び出しIsOneWay=false
A
コールバック メソッドを呼び出しますが、B
まだ実行中です。
コールバックにはUseSynchronizationContext=false
.
単純なシナリオでは問題を再現できませんでした。単純なプロジェクトでこれらの手順を実行すると、正常に実行されます。
何が起こっているのか、または問題を特定する方法について何か考えはありますか?
performance - ASP.NET クライアント アプリケーションでの WCF ChannelFactory およびチャネル キャッシュ
複数のアプリケーションで使用される一連の WCF サービスを構築しています。そのため、WCF サービスにアクセスするための共通ライブラリを定義しようとしています。
異なるユーザーによって行われた各サービス要求は異なるチャネルを使用する必要があることを知っているので、要求ごとにチャネルをHttpContext.Current.Items
キャッシュし ( )、アプリケーションごとにチャネルを作成するために使用される ChannelFactory をキャッシュすることを考えています ( HttpApplication.Items
)。同じChannelFactory
。
ただし、ChannelFactory と Channel を閉じるときのこのキャッシュ メカニズムについて質問があります。
- 使用された後、リクエストの最後にチャンネルを閉じる必要がありますか、それとも、そのリクエストのコンテキストが終了したときにチャンネルを閉じたまま (?) にしても問題ありませんか?
- チャンネルファクトリーはどうですか?各チャネルはそれを作成した ChannelFactory に関連付けられているため、アプリケーション プロセス (AppDomain) の存続期間中、同じ ChannelFactory を保持しても安全ですか?
これは、これを管理するために使用しているコードです。
ありがとう!
.net - チャネル例外によってWCFサービスが機能しなくなるのを防ぐにはどうすればよいですか?
netNamedPipeBindingを使用してWCFシングルトンサービスを作成しました。チャネル例外が発生すると、チャネルは障害状態のままになり、後続のすべての操作で例外がスローされます。どうすればこれを防ぐことができますか?TimeoutException、またはその他の一般的な例外のいずれかを使用して、1つの操作のみを失敗させ、サービスを応答不能にしないようにします。
message - チャネルの MOTD
ユーザーがチャネルに参加したときに、ファイル/テキストの文字列をユーザーのチャネル出力に表示する方法はありますか? これは、irc 構成でサーバー側で発生する必要がありますか、それともボットで同じことを行うことができますか?
c# - 繰り返し呼び出しのある WCF チャネルの有効期間
これは当然の質問かもしれませんが、そうでないかもしれません。ボタンを押すたびに、リモート WCF サービスで異なる関数が呼び出される GUI コントロール アプリケーションを想像してみてください。ボタンの使用頻度は、約数秒間隔です。一般に、関数呼び出しごとに WCF チャネルを開いて閉じるか、アプリケーションの有効期間中チャネルを開いたままにするのが最善ですか? もちろん、このアプリケーションのインスタンス化はわずかしかないと仮定します。
注意。この質問は実際には例に関するものではありませんが、ここでのベストプラクティスを理解するのに役立ちます.
c# - WCF ChannelFactory State プロパティ
ChannelFactory が State プロパティを持つとはどういう意味ですか? 作成されたチャネルが接続ベースの状態を持つことができることを理解しています。しかし、なぜ ChannelFactory にもそのような接続状態があるのか について混乱しています。それもWCFサービスに接続しますか?