問題タブ [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.
wcf - WCF サービス: netNamedPipeBinding
私のWebサービスで構成しようとしNetnamedPipeBinding
ました。
およびバインディング構成
IIS7 での展開
net.pipe
サイト レベルと仮想ディレクトリ レベルでパイプを有効にし、Windows プロセスのアクティブ化も開始しました。
仮想ディレクトリ レベルを有効にせず に IIS7 サーバーにデプロイすると、次のように表示されます。
仮想ディレクトリ レベルで有効にすると、次のように表示されます。
クライアント側からのサービス名WSHttpBinding
実際には と の両方を試着する必要がwsHttpBinding
ありnetNamedPipeBinding
ます。これらの問題に直面したIi
で試してみました。netNamedPipeBinding
何か見逃したことがありますか?
この問題を解決するためのアイデアはありますか?
c# - WCF netNamedPipeBinding メッセージ レベルのセキュリティ、これは可能ですか?
私はWCFを初めて使用していますが、まだ学習中です。
IPC に netNamedPipeBinding を使用したいのですが、できるだけ安全にする必要があります。私はすでに wsHttpBinding の練習サービスを行っており、証明書を使用していたので、(メッセージ レベル セキュリティを使用して) その部分をカバーしました。
ご覧のとおり、名前付きパイプはトランスポート レベルのセキュリティのみを使用できます (少なくともトランスポートのみがビジュアル スタジオのオートコンプリートに表示されます)。
マシンキーなどに基づいてメッセージを暗号化することは可能ですか? はいの場合、それに関するドキュメントや例はどこで見つけることができますか?私は2日間インターネット全体を検索してきました:)
ありがとうございました
c# - NetNamedPipeBinding channel.State == 開いていますが失敗しています
私は、同じマシン上にある WCF サービス (ServiceA) と Windows サービス (ServiceB) NetNamedPipeBinding
の間の通信に使用するアプリケーションに取り組んでいます。WSDualHttpBinding
ChannelFactory を作成し、続いて NetNamedPipe チャネルを作成する ServiceA にプロキシ クラスがあります。このチャネルはキャッシュされ、ServiceB とのすべての通信に使用されます。
NetNamedPipeBinding
基本的に、サービスを使用して電話をかける必要があるときはいつでも、次のChannelProxy
ようになります。
これで、99% の確率ですべて正常に動作しますが、時折、ログの最後の行が表示されます - ManagerProxy's State == Opened
. このチェックの直後に、プロキシを使用してメソッドを呼び出そうとすると、次のエラーが発生します。
State == Opened
パイプへの書き込みがすぐに失敗するのはなぜですか?
ProxyChannel を保持する方法にアーキテクチャ上の変更を加える必要はありますか?
.net - WCF サービスが 2 回開始します
Net 名前付きパイプ バインドを使用するように構成された WCF サービスがあります。サービスの構成はこちら。
Windows サービスの一部としてサービスを開始しようとしましたが、サービスは正常に開始されました。これを実行している同じマシンで、コンソール アプリケーションの一部として同じサービス、同じ構成、同じアドレスを開始しました。それも正常に実行されます。唯一の違いは、Windows サービスが Network Service ID で実行され、コンソール アプリが私の ID で実行されることです。
Windows サービスのサービスがリッスンしているときに、コンソール アプリのサービスがどのように開始されるのか理解できません。「 there is another endpoint listen 」というメッセージでエラーをスローするコンソール アプリの別のインスタンスを実行しようとしました。これは理にかなっています.Windowsサービスがすでに同じサービスを開始してリッスンしている間に、コンソールアプリの最初のインスタンスがどのように実行されているか理解できません. 誰かがこれを説明できますか?
performance - WCF NetNamedPipeBinding パフォーマンスの最適化
バイト配列を受け取り、それを SQLite DB に書き込む WCF 名前付きパイプ サービスがあります。SQLite 挿入ロジックを WCF サービスに移動すると、書き込みパフォーマンスがほぼ半分に低下しました。オンラインでさまざまな推奨事項を調べましたが、何も役に立たないようです。私の現在の構成は次のようになります。
より多くの微調整の推奨事項は大歓迎です。
wcf - Windows 7 の Windows サービスで netNamedPipeBinding を使用して WCF サービスをホストおよび開始できない
4.5 .Net Framework で C# を使用して構築された 2 つのアプリケーションを使用しています。
- WPF デスクトップ アプリケーション
- Windows サービス
条件に基づいてデータ/オブジェクトの状態を頻繁に共有する必要があるため、IPC(プロセス間通信)アプローチを使用して互いに話し合う必要があります。
netNamedPipeBinding を使用した WCF は、非常に柔軟なソリューションのようです。WCF サーバーとクライアントを作成し、コンソール アプリケーションで正常にホストされることをテストしました。
このソリューションが機能したので、WCF サーバーを Windows サービスでホストする必要がありました (これが私の最終的な要件です)。
アプリケーションを正常にホストできましたが (目に見えるエラーが表示されないため推測できます)、クライアントを接続できません。WcfTestClient.exe ツール (Visual Studio の既定のツール) を使用し、コンソール アプリケーションから接続しようとしましたが、エラーが発生し続けるため、どれも機能していないようです - net.pipe://localhost/ からメタデータを取得できませんTestWCFService/mex . 詳細は以下に追加。
Windows サービスを管理者権限で登録し、コンソール アプリ テスト クライアントと WcfTestClient.exe を同じユーザーで実行しました。
当然のことながら、私は何かが欠けています、それを修正するためにあなたの助けに感謝します.
これがコードです。WindowsサービスでWCF netNamedPipeBindingサービスをホストするために使用しています。
エラー: net.pipe://localhost/TestWCFService/mex からメタデータを取得できません これがアクセス権のある Windows (R) Communication Foundation サービスである場合は、指定されたアドレスでのメタデータ公開が有効になっていることを確認してください。メタデータの公開を有効にする方法については、MSDN のドキュメント ( http://go.microsoft.com/fwlink/?LinkId=65455.WS-Metadata ) を参照してください。Exchange エラー URI: net.pipe://localhost/TestWCFService/mex メタデータに解決できない参照が含まれています: 'net.pipe://localhost/TestWCFService/mex'。メッセージを受け入れることができる net.pipe://localhost/TestWCFService/mex でリッスンしているエンドポイントはありませんでした。これは、多くの場合、アドレスまたは SOAP アクションが正しくないことが原因です。詳細については、InnerException (存在する場合) を参照してください。パイプ エンドポイント 'net.pipe://localhost/TestWCFService/mex' がローカル コンピューターで見つかりませんでした。
ここで私のWCFサーバー構成設定:
クライアント(コンソールアプリケーションにある)の場合、インラインを使用しています。ここにコード
c# - ポートを使用せずに WCF で Net Named Pipe Binding を使用できますか?
同じマシン上の 2 つのアプリケーション間で通信するデモを実装しようとしています。だから私は選ぶNetNamedPipeBinding
。そして、そのドキュメントは、「 http://localhost:8000/uesamples/service」のようなベース アドレスを割り当てる必要があることを示しています。
の
しかし、私はポートを使用しないことを好みます。
別の方法でベースアドレスを定義することは可能でしょうか?