問題タブ [netnamedpipebinding]
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.
c# - netnamedpipebinding 無限 receiveTimeout はどの程度信頼できますか?
サービスとクライアント間の一貫した名前付きパイプ接続に依存する二重 WCF サービスがあります。これは、クライアントがサービスで Subscribe を呼び出し、サブスクリプション リストに登録される、一種のパブリッシュ/サブスクライブ システムです。次に、サービスは独自の特定の更新メソッドを呼び出し、コールバックを介してクライアントに更新をプッシュします。
netnamedpipebinding の recieveTimeout を「無限」に設定しました。この接続が永久に開いていることを合理的に信頼できますか? さらに重要なことは、タイムアウト以外でチャネルに障害が発生する状況はありますか?
名前付きパイプは単なる共有メモリの場所であるため、ハードウェアの問題以外に一貫して失敗する理由はあまり考えられません。さらに、一定の間隔で ping を実行する以外に接続を保証する方法はほとんどありません。
余談ですが、クライアントを WCF サービスにすることも避けたいというのが私の直感です。私はそれが本当の循環依存ではないことを知っていますが、気分が悪いだけです. しかし、私は偏執的であるだけで、そのようなパターンは大丈夫だと言う人にはオープンです.
wcf - パイプバインディングという名前のWCFを使用してセッションの境界を越える方法は?
Windows 7には、サービスが実行されるセッション0と、ユーザーと対話する他のセッションがあります。
セッション0で実行されているWCFクライアントは、次の場合を除いて、セッション1で公開されたパイプを確認できません。
- 設定
SeCreateGlobalPrivilege
-私にとってはオプションではありません - セッション0ユーザーとして実行されているがセッション1ユーザーには表示されているUIを表示する-サービスがを使用してUIを開始するときに可能
CreateProcessAsUser
- 次のような別のバインディングを使用する
netTcpBinding
他の解決策はありますか?
wcf - WCF で使用される名前付きパイプの保護
WCF と名前付きパイプの両方の初心者です。
UI アプリケーションと同じマシン上の Windows サービスとの間で安全に通信する方法が必要です。必要なものは次のとおりです。 - クライアント UI アプリケーションは、さまざまなメッセージ タイプを Windows サービスに送信 (プッシュ) する必要があります。- クライアント UI アプリのニーズは、サービスからさまざまなメッセージ タイプ (プッシュまたはプル) を受け取ります。
(ここでのメッセージは、単純に構造化されたシリアル化されたデータです)。
これで、この交換はすべて、承認されたユーザー アカウント (サービス アカウントとは異なる可能性があります) でのみ行われます。そこで、サービスとユーザー アカウントの両方に対して名前付きパイプの ACL を作成することを考えていました。
ただし、名前付きパイプはストリームのみをサポートします。名前付きパイプを介して交換する必要がある複数のタイプのメッセージがあります。つまり、それらを定義してシリアライズ/デシリアライズする必要があります。
これを回避するために、名前付きパイプで (シリアル化と RPC サポートのために) WCF を使用することを考えました。また、Windows サービスで WCF サービスをホストします。
質問 1) これは良いアプローチですか? 通信はマシン内に留まる必要があるため、WCF の下で http または tcp を使用することに躊躇します。
質問 2) WCF が使用する名前付きパイプの ACL をどのように使用できますか? これは私がコントロールできるものですか?クライアントとサーバー間で認証方式を実装するよりも、特定の SID で名前パイプを ACL 処理する方がセキュリティが向上すると思います。
ポインタ、提案をありがとう!サミール
wcf - WCF NamedPipe:PerSession-シングルまたはシングルトン-マルチプル
名前付きパイプwcfサービス(WCF 4)を介して別のプロセス(このコンテキストではサーバー)と通信するWebアプリケーション(このコンテキストではクライアント)を構築しています。
多くの記事を読んだ後、ラウンドロビンで使用されるサーバーに接続されたプロキシのプールを作成することを考えていました(これを読んだことでパフォーマンスが向上しました)。
各呼び出しは非常に短くなります。サーバーでは、いくつかのオブジェクトの単純なプロパティを読み書きする必要がありますが、このオブジェクトは共有されているため、どのような場合でもロックを使用する必要があります。非常に高い並行性を期待しています。
プールがあるため、クライアントは常にサーバーとのNセッションを開いています。
PerSession-SingleまたはSingleInstance-Multipleの間のInstanceContext-ConcurrencyModeの最適な設定は何であるか疑問に思いました。
ありがとうございました
c# - ネットワーク上で NetNamedPipe を使用していますか?
他のプロセスを開始/停止するウィンドウ サービスを構築しており、UI とサービス間の通信は NetNamedPipe を使用しています。
すべてのプロセスには、シャットダウン コールを取得できるホストがあります (ポート クロスを回避するために NetNamedPipe を使用します)。
私はそれを自分のコンピューターで使用しましたが、サーバーに移動したときに機能しませんでした (NetNamedPipe はクロスネットワーク用ではありません - 今ではわかりました)。
これを正しく行う方法はありますか?
c# - NetNamedPipe を使用した WCF 複数のアプリ
同じマシンで複数の WCF サービス ホスティング アプリを実行しようとしています。
1 つのアプリケーションで複数のサービスを実行するのではなく、複数のアプリケーションを実行したい。
アプリごとに「FOO」を変更していますが、それでも複数のサービスを起動できません。それはかなり単純だと思いますが、行き詰まっています:(
よろしく
wcf - WCFローカルマシンのServiceHostおよび管理者権限
ローカルユーザー(管理者権限なし)でServiceHostを使用してWCFサービスをセルフホストで実行する方法はありますか?ローカルコンピュータ上にある必要があります。
私は将来複数のデスクトップにインストールされるアプリケーションに取り組んでいますが、現在はサーバーとクライアントの両方の1つのデスクトップでのみ機能する必要があります。将来の問題を排除するために、1つのdestopアプリでもwcfスタック全体を使用したいと思います。基本的に-管理者権限のない1つのシステムでWCFサーバーとクライアントを起動する必要があります。多分それはnetnamedpipebindingで行うことができますか?
乾杯、アンドリュー
c# - 同じユーザーのログオンセッションでのみプロセス間の通信にWCFNetNamedPipesBindingを使用するにはどうすればよいですか?
同じユーザーのログオンセッション内で実行されている2つのプロセスがWCFを介して通信するようにしたいのですが。NetNamedPipesBindingがこれに最も適しているようです。ただし、複数のユーザーがログインしてこれらのプロセスを実行している可能性があるため、各プロセスが同じユーザーのログオンセッションで他のプロセスとのみ通信するようにする方法が必要です。また、理論的には、各ユーザーが同じマシンに複数回ログインする可能性があります。ここでも、異なるログオンセッションのプロセスが相互に通信することはできません。
私は(この質問とは異なり)セキュリティには特に関心がありません。各プロセスが同じユーザーセッション内の他のプロセスとのみ通信するようにする方法があるだけです。
1つの解決策は、エンドポイントアドレスに一意のログオンセッションIDを追加することですが、一意のログオンセッションを取得する方法がわかりません(これに関する私の質問を参照してください)。このためにWCFに組み込まれた方法、またはこれにアプローチする標準的な方法があるのではないかと思いました。
c# - WCF:プログラム構成をapp.configに変換します
私は次のプログラム構成を実行しています(サーバー側)
これを次のコードに変換しようとしていますapp.config
:
ただし、これは機能していないようです。つまり、クライアントはこれに接続できません。
app.configコードに何か問題がありますか?または、app.configの構成を使用するように.NETに指示するために、プログラムで何かを行う必要がありますか?
.net - WCF の一意のベース アドレスの問題
WCF がレポートする場所に問題があります...
net.pipe://192.168.0.100/SystemA/Service1.svc/mexPipe' をアクティブ化できませんでした。
ベースアドレスを次のように定義しました。
サービス 1...
サービス 2...
サービスごとに、次のように Mex エンドポイントを定義します...
これにより、次のように2倍のmexエンドポイントが確実に得られるはずです...
ただし、この投稿を見ると、これが機能しているとは思いません...
投稿者は私と同様の構成をしているように見え、応答者は、ベースアドレスは各スキーム内で「一意」ではないと述べていますが、両方が2つの一意のサービスを参照しているため、確かにそうですか?
WCF は、mex エンドポイントが netNamedPipe であることを検出し、それらのベース アドレスを検索できますか? バインディングが「mexNamedPipeBinding」である場合、またはこれは機能しませんか?