問題タブ [servicehost]
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構成ファイルのカスタムServiceHost?
構成でカスタム ServiceHost (つまり、ServiceHost 派生クラス) を指定する方法があるのだろうか? ありがとう
wcf - WCF ServiceHostbasicHttpBinding503エラー
Windows2007SP1サーバーでWCFServiceHostをNTサービスとして実行しようとしています。ServiceHostは、単一のサービスエンドポイントをホストする責任があります:次のアドレスを持つbasicHttpBinding:
このServiceHostをローカルマシン(Windows XP)で実行すると、正常に動作します。SOAPメッセージをPOSTすると、HTTP 202コード(「承認済み」)が返されます。これは、サービスの正しい応答です。契約にはIsOneWay=trueがあります。ただし、これを2007サーバーで実行すると、サービスを呼び出そうとすると503エラーが発生します。WCFメッセージのロギングを「ずっと上」にしたのですが、ロギングがまったく表示されないため、これはWCFよりも低いレベルで発生していると思います(呼び出しがWCFの「レイヤー」に到達することはありません)。 )。
sys-adminsと私はさまざまな形式のhttpcfgコマンドを試しましたが、今のところ運がありません。
これをIISでホストしようとすることが解決策になる可能性があることはわかっていますが、本番アプリサーバーにはIISがインストールされていないため、サービスをServiceHostとして実行したいと思います。
どんなアイデアでも大歓迎です!
c# - 二重コールバックは常に匿名です
私は WCF デュプレックス サービスとクライアントを作成しました。クライアント実装で .Demand() を呼び出そうとするまで、すべてがうまく機能します。サービスが匿名でコールバック メソッドを呼び出しているようです。サービスを正しく構成する方法が不足していると思います。
ServiceHost の作成に使用されるコード。
クライアントの作成に使用されるコード。
クライアントの実装:
ServiceHost が Windows 資格情報を使用してコールバックを正しく呼び出すように構成するにはどうすればよいですか?
wcf - ワークフローでカスタム プリンシパルを使用する
複数の WCF サービスをホストするアプリケーションがあります。完全に機能するカスタム ServiceAuthorizationManager を作成しました。ユーザー名とパスワードを取得するために、OperationContext.IncomingMessageHeaders のいくつかの要素を調べます。これは、プラットフォームに組み込まれているものを使用できない環境のいくつかの制限を克服するためでした. マネージャーは、いくつかの必要なカスタム オブジェクトを含むカスタム IPrincpal を作成し、現在実行中のスレッドに配置して、後で WCF ビジネス ロジックで使用できるようにします。これはうまくいっています。
問題は、ワークフローである WCF サービスがあり、そこで同じメカニズムを使用する必要があることです。Manager は正しく呼び出されていますが、Thread の currentPrincpal を実行すると、カスタム プリンシパルではなく、genericprincipal になります。調査の結果、ワークフロー ランタイムがスレッドを作成しており、WCF 呼び出しが行われたスレッドを使用していないことがわかりました。
誰かがこの問題に遭遇しましたか?それに対する良い解決策はありますか?
c# - WCF:ServiceHostとは何ですか?
現在、WCFサービスの使用方法を学習しているため、インターネット上で、WCFサービスを使用するときにを使用することについて言及しているチュートリアルに常に遭遇していServiceHost
ます。
これは正確には何ServiceHost
ですか?
現在のプロジェクトでは、WCFサービスを使用していて、アプリからWCFサービスへの参照を持っています。アプリからそれを利用したいときはいつでも、次のServiceClient
ようにインスタンス化します。
次に、そのインスタンスからWebメソッドにアクセスOperationContract
します(明らかに、メソッドを使用する前に開いて、後でandで閉じOpen
ますClose
)
WCFサービスはIISのホストであり.svc
、アプリからにアクセスするだけでをインスタンス化できますServiceClient
。
では、なぜ、どこでServiceHost
使用されるのでしょうか。
.net - WCF::ServiceHost:奇妙な...スレッドが死んでもまだ生きていますか?
ここに新しいメンバー。このようなきちんとしたコミュニティを見ることができてうれしいです。
少し調査した後、アプリケーションで WCF を使用してプロセス間通信を行うことにしたので、NetNamedPipeBinding バインディングを使用しています。
ServiceHost ホスティング アプリケーションは専用サーバーではないため、スレッドを介して ServiceHost を生成する必要があります。ここまでは順調ですね。
だから私は次のようなものを持っています:
予想通り、次のように表示されます。
しかし驚いたことに、サーバーが実行されているスレッドが興奮していても、クライアントは引き続き serviceHost に接続でき、サービス ホストはリクエストを適切に処理します。
では、メイン スレッド (作成されたスレッド) が停止しているにもかかわらず、ServiceHost がまだリクエストを処理および処理しているのはなぜでしょうか?
また、ServerThread を存続させ、while(true){Thread. スリープ(100);}?
ありがとう。
.net - WCF:: ServiceHost と AddServiceEndpoint: 引数の型が逆になっていますか?
私は WCF を学ぼうとしていますが、それは十分に簡単に思えますが、奇妙な状況に遭遇しました...少なくとも私には奇妙に思えます。
ServiceHost ctor が具体的なクラスを取り、AddServiceEndpoint がインターフェイスを取り、その逆ではないのはなぜですか? 後者はOOPの観点からより論理的であるようです。
次の点を考慮してください。
そこで、/AnimalSoundService/Dog または /AnimalSoundService/Cat を介して犬または猫の鳴き声を得るために接続できる「AnimalSound」サービスを作成したいと考えています。
しかし、上記のコードは、私がよく理解していない何らかの理由でコンパイルされません。
では、より細かい粒度のエンドポイントが特定の実装をサポートするのがより自然に思われるので(そのため、エンドポイントアドレスごとにコントラクトの特定の実装をヒットできます)、より一般的な ServiceHost は 1 つでなければならないので、その逆ではない理由は何ですかインターフェイスを受け入れるには?
ところで、私は衒学的ではありません..ここで何かを逃したのは私だと確信しているので、正直に理解しようとしています。
c# - Windows サービス内のステートフル情報にアクセスできる Windows サービス内に WCF ServiceHost を設定する方法
C# で Windows サービスを作成しました。それは機能し、うまく機能しています。Windows サービスに WCF サービスを追加して、クライアント アプリケーションが Windows サービスに接続し、Windows サービスからステートフルな情報を取得できるようにしました。
次のように、同じサービス インスタンスを使用してすべてのクライアントからのすべての要求を処理するように、WCF サービスをシングルトンに構成しました
。
すべてのクライアントが接続でき、WCF サービス内の同じステートフル情報にアクセスできます。ただし、次のような独特の動作に遭遇しています。
改訂: Windows サービス内で
WCFサービス コントラクトをインスタンス化します。インスタンス化時に割り当てられたステートフルな情報は、サービスに接続するすべてのクライアントで利用できます。
ただし、 (クライアントによってではなく) Windows サービスから直接サービス コントラクトインスタンスに追加されたステートフルな情報は、サービスに接続するクライアントには表示されません。これは、サービス コントラクトの 2 つのインスタンスがあるかのようです。1 つは Windows サービス用で、もう 1 つは WCF サービスに接続するクライアント用です。
WCF サービスをインスタンス化し、Windows サービス内で利用可能なステートフル情報にアクセスできるようにするための推奨される (最良の) 方法は何ですか?
c# - 2 つのアプリケーションが異なるエンド ポイント アドレスを使用している場合、同じ WCF NetTcpBinding ポートを共有できますか?
サービスがクライアントにインストールされ、別のサービスがサーバーにインストールされる、クライアントとサーバーのシナリオがあります。これらが異なるマシンにインストールされている場合、問題はありません。ただし、クライアント サービスとサーバー サービスの両方を同じマシンにインストールできるようにしたいと考えています。異なるポートを使用するように設定できますが、単一のポートを使用してこれを実現したいと考えています。
Net.Tcp Port Sharing Service Windows サービスを有効にして開始しました。最初に Server サービスを起動します。クライアント サービスを開始しようとすると、serviceHost.Open() の実行時に次の例外が発生します。
The TransportManager failed to listen on the supplied URI using the NetTcpPortSharing service: the URI is already registered with the service.
以下はソースコードです。サーバーとクライアントの両方が、次のように異なるエンド ポイント アドレスを使用します。
サーバー サービス:
顧客サービス: