問題タブ [channelfactory]

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 に答える
797 参照

wcf - SOAの原則に対するWCF ChannelFactory?

wcf インターフェースと datacontracts を含むプロジェクトを共有し、これらを ChannelFactory 経由で使用して、SOA の原則に反してサービスを利用していますか?

私のアーキテクトは、Add Service Reference を使用してプロキシを生成することが望ましいとアドバイスしています。

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

c# - Problems connecting to WCF Service via NetNamedPipeBinding

I'm having trouble figuring out how to get a named pipe WCF service to work. The service is in a seperate assembly from the executable.

The config looks like this:

I'm using a ChannelFactory to create a proxy to access the service host:

ChannelFactory を作成するときに何が間違っているのかわかりません。設定で「channel1」が見つからないようです。バインディングを手動で作成して ChannelFactory コンストラクターに渡すと、ファクトリとプロキシは作成されますが、LoadData() の呼び出しは失敗します (タイムアウト)。

ここで私が間違っていることを誰かが見ることができますか?

編集: 上記の app.config を編集して、両方のエンドポイントがまったく同じデータを持つようにしました。これで Channelfactory の問題は解決しました。ただし、上記のサービス メソッドの呼び出しは依然としてタイムアウトします。

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

wcf - WCF のチャネル ファクトリ

こんにちは、私は WCF を初めて使用します。チャネル ファクトリを使用しているかどうか、およびサービス コントラクトを変更した場合、変更がクライアント システムで自動的に更新されるかどうかを知りたいですか?変更が自動的に更新される場合、どのように?? ??

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

.net - WCF:ChannelFactoryを閉じない場合と、ChannelFactoryを常に再作成して閉じる場合の比較

コードで使用し、ChannelFactoryクラスとして生成したWCFサービスがあります。WCFを使用する適切な方法は、ChannelFactoryを作成し(これをAwesomeClientと呼びましょう)、作業を行ってから、Close()を呼び出すことです。これが私のスニペットです:

ただし、DoSomethingが非常に頻繁に呼び出されることを期待しているため(たとえば、1分間に10回?)、私が得たアドバイスは、ChannelFactoryを静的インスタンスとしてインスタンス化し、常に同じインスタンスを再利用し、閉じる必要がないことです。 (これは、常にChannelFactoryを再作成してから閉じるよりも「安い」ためです)。

私はセカンドオピニオンのためにここにいます、なぜCloseを呼び出して静的インスタンスを再利用しないのが良い考えであるか誰かに教えてもらえますか?または、ChannelFactoryを再作成してClose()を実行するだけで、呼び出しごとにそれを実行する必要がありますか?

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

c# - ServiceHost クラスなしで WCF を使用して単純な Web サーバーを作成するにはどうすればよいですか?

私は WCF の学習を始めており、チャネル スタックを直接使用して単純な Web サーバーを作成することにより、その内部を理解したいと考えています。Web で多くの理論を見つけましたが、任意のブラウザーを使用してテストできる httprequest を受信して​​応答する実際のサンプル コードを確認したいと思います。バインディング要素を組み立ててリクエストに応答することにより、カスタムバインディングのセットアップを示すものを期待しています。

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

c# - WCFChannelFactoryの作成

既存の.NETRemotingアプリケーションをWCFに変換しようとしています。サーバーとクライアントの両方が共通のインターフェースを共有し、すべてのオブジェクトはサーバーによってアクティブ化されるオブジェクトです。

WCFの世界では、これは呼び出しごとのサービスChannelFactory<T>を作成し、プロキシを作成するために使用するのと似ています。ChannelFactory<T>ASP.NETクライアント用に適切に作成する方法に少し苦労しています。

ChannelFactory<T>パフォーマンス上の理由から、オブジェクトをキャッシュして、サービスを呼び出すたびにチャネルを作成したいと思います。.NET Remotingの時代RemotingConfiguration.GetRegisteredWellknownClientTypes()には、キャッシュできるクライアントオブジェクトのコレクションを取得するメソッドがありました。構成ファイルからエンドポイントのコレクションを取得することはできましたが、WCFの世界ではそのようなことはないようです。

これが私がうまくいくと思うものです。私はこのようなものを作成することができます:

上記のコードは機能すると思いますがChannelFactory<T>、ルックアップにない場合、複数のスレッドが新しいオブジェクトを追加しようとするのではないかと少し心配しています。.NET 4.0を使用しているので、まずメソッドを使用しConcurrentDictionaryて使用GetOrAdd()するか、メソッドを使用して存在するTryGetValue()かどうかを確認してから、メソッドを使用することを考えていました。と方法については、パフォーマンスについてはよくわかりません。ChannelFactory<T>GetOrAdd()ConcurrentDictionary.TryGetValue()ConcurrentDictionary.GetOrAdd()

もう1つの小さな質問はChannelFactory.Close()、ASP.NETアプリケーションの終了後にチャネルファクトリオブジェクトのメソッドを呼び出す必要があるのか​​、それとも.NETFrameworkにチャネルファクトリオブジェクトを独自に破棄させるのかということです。メソッドを使用してサービスメソッドを呼び出した後、プロキシチャネルは常に閉じられ((IChannel)proxy).Close()ます。

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

silverlight - Silverlightでwcfサービスのサーバー名を動的に設定する方法

WCFサービスからのデータを消費するSilverlight4ソリューションを展開する必要があります。課題は、これが本番インストールになるため、サービスのサーバー名を制御する方法がなく、SilverLightアプリがWCFと同じサーバーにインストールされないことです。

ここからこの道を歩み始めることは、私がこれまでに思いついたものです。

WCFのサーバー名をinitParams経由でsilverligthアプリに渡す必要があります。

私が持っているaspxファイル内

次に、app.xaml.cs内でparamを呼び出します。

これをアプリの起動時に呼び出したので、パラメーターはアプリ全体の範囲内になります。

メインページ内で、このパラメータを変数に割り当てます

dswconnection = initParams["servicepoint"];

次に、サービスにクエリを実行するたびに、サービスのrefernece.configファイル内でデフォルト設定されているものを上書きするようにアドレスを設定します

私の質問は....これが最善のアプローチですか、それともサーバー名がわからないときにサービスのサーバー名を動的に識別する別の方法がありますか。これは、SilverlightアプリがWCFとは別のホストに存在するため、channelfactory内のホスト名またはアドレスを検出するために一部の機能を使用できない重要なポイントです。

現在、initparamsに渡される値は、javascriptによって読み取られ、値として割り当てられる構成ファイルに保存されます。ここでの私のコードでは、簡潔にするためにハードコーディングしました。

提案をありがとう。

0 投票する
0 に答える
1261 参照

c# - REST サービス内で REST サービスと通信する

次のコードを使用して REST サービスと通信します。

単純なテスト アプリケーションでは問題なく動作しますが、実際のアプリケーションでは、自分の REST サービス内で呼び出したいと考えています。REST サービスへの呼び出しが行われた場合、サービスは別の REST サービスへの呼び出しを行う必要があります。

そして、物事は奇妙になります。この状況では、上記のコードは機能しません。サービス メソッド内に配置されている場合、GET 要求の代わりに POST 要求を送信し、もちろん「メソッドは許可されていません」というエラーが発生するためです。コードのどこにも属性 WebInvoke がありません。

HTTP リクエスト メソッドが変更されるのはどうしてでしょうか?

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

wcf - WCF:障害のあるチャネルを診断する方法は?

私は、私たちが目にしているいくつかの奇妙なチャネル障害の異常を診断するのに役立つことを願って、ラボの変更を出荷することに取り組んでいます. DuplexChannelFactory を使用していくつかの Windows サービスに接続するテスト アプリケーションがあり、何らかの理由でこのテスト アプリケーションのチャネルにかなりの障害が発生しているようです。そこにいくつかの再試行ロジックを実装する計画がありますが、なぜそれらが失敗しているのかを正確に理解することは素晴らしいことです.

チャネル ファクトリとプロキシ オブジェクトはすべて多くのインターフェイスを実装していることを知っており、リフレクターを使用してそれらのいくつかをクロールしましたが、探しているようなものは見つかりませんでした。障害の原因に関する情報を取得するために、障害が発生した後にこれらのオブジェクトにクエリを実行する方法はありますか?

編集: 構成は非常に基本的なものです。バインディングはデフォルトで構築された NetTcpBinding のみであり、サービスの実装には が[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Reentrant)]あり、サービス コントラクトの操作には特別な属性はありません。ただし、この特定のケースを診断するのではなく、チャネル障害を診断する一般的な手法について詳しく質問しています。構成の詳細がそれに大きな影響を与えるとは思いません。どちらかといえば、構成の詳細は、上記の診断によって返されるものですよね?

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

cookies - ChannelFactory を使用して WCF 経由で Cookie を送信する

IService を提供する IOC コンテナを使用しています。IService が WCF サービスの場合、チャネル ファクトリによって提供されます。IService が同じマシン上にある場合、同じ Cookie にアクセスできるため問題ありませんが、WCF サービスが呼び出されたら、それらの Cookie を送信する必要があります。

チャネル ファクトリを使用して Cookie を送信する方法を見つけるのに多くの時間を費やしましたが、それが機能することがわかった唯一の方法は次のとおりです。

その方法を使用する際の問題は、常にそうであるとは限らない WCF サービスを呼び出していることを知る必要があることです。新しいサービスやその他のさまざまなソリューションを作成するときに新しい operationcontextscope を開く ChannelFactory のラッパーを作成しようとしましたが、何も機能しませんでした。

WCF サービスを介して Cookie を送信した経験がある人はいますか?

SilverLight を使用した解決策を見つけました。残念ながら、Silverlight は使用していません。解決策は次のとおりです。 -passing-cookies/ 残念ながら、標準の .net には IHttpCookieContainerManager インターフェイスが含まれていません

理想的には、同様のものを使用できます。つまり、チャネルファクトリが開かれるたびに Cookie を渡すように指示できます。

認証に使用されるトークンを渡すためのより良い方法があれば、それも高く評価されます。