問題タブ [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 - Windows サービスでホストされている WCF は、インターネット経由でアクセスできますか?
WCF についての理解が必要です。
私はクライアントサーバーアプリケーションに取り組んでいます。プロジェクトプランはこんな感じ。
Windows 7 で SQL Server 2008 を実行しているサーバーが 1 台あります (Windows 7 はサーバーに最適な選択ではないことはわかっていますが、現在は Windows 7 を使用しています)。サーバー側で net tcp バインディングを使用して、Windows サービスでホストされる WCF サービスのクラスターを構築することを計画しています。これらの WCF サービス クラスターは、アプリケーションおよびデータベース トランザクションのすべてのビジネス ロジックを処理します。
現時点では、クライアント アプリケーションを実行している 25 の Windows クライアント (将来的には増加する可能性があります) があります。すべてのクライアントは同じ LAN にあるため、上記のアーキテクチャの作業を推測し、すべてのクライアントはネット TCP バインディングを使用してサーバー上で実行されている WCF サービスにアクセスできます。間違っていたら訂正お願いします...
将来やりたいことは、同じ WCF サービスにアクセスするモバイル クライアント アプリケーションまたは Silverlight クライアント アプリケーションを作成したいということです...これは、Windows サービスで WCF サービスをホストしており、モバイル クライアント アプリケーション / Silverlight クライアント アプリケーションの場合同じネットワーク(同じLAN)上にありますか?? (コメントは見られないと思います)
インターネット経由でアクセスしたい場合はどうすればよいですか?? 上記の Windows サービスでホストされている WCF サービスは、インターネット経由でアクセスできますか?? (nettcp バインディングの場合は可能ですが、他の WCF アプリケーションによってのみ可能です - コメントを参照してください)
そうでない場合、Windows サービスでホストしているときに WCF サービスの http 基本エンドポイントを作成し、インターネット経由でアクセスできるようにすることはできますか??
そうでない場合、Windows サービスと IIS で同じ WCF サービスをホストできますか??
インターネットだけでなく LAN 経由でも WCF にアクセスできるようにする場合、最適なオプションは何ですか??
c# - CustomPeerResolverService から MeshEntry/P2P エンドポイントをどのようにキャプチャして保存しますか?
OperationContext.Current.GetCallbackChannel<> を介してクライアント コールバック チャネルをキャプチャできるのとほぼ同じ方法で、MeshEntry をキャプチャして保存することは可能ですか?
CustomPeerResolverService にリストされている MeshEntry を確認できますが、ピアが特定のピアを識別してターゲットにすることが可能かどうかはわかりません。サーバーに各クライアントへのコールバック チャネルを保持してもらいたいのですが、MeshEntry などをクライアント クラスのプロパティとして保存し、CallbackChannel をデシリアライズしたままにすることは可能ですか。ピアがこのチャネルを介して別のピアに連絡することを望んでいます。
ありがとう
wcf - WCF サービスは、同じプロセスで実行されている他の ServiceHosts にアクセスできますか?
同じプロセス内で実行されている他のサービスを監視し、正常性やサービスの依存関係などの基本情報を報告するサービスを作成したいと考えています。各サービスがメタデータを公開したり、監視サービスが通信できるカスタム エンドポイントを公開したりせずに、監視サービスが他のサービスに関する詳細情報にアクセスするための最良の方法を見つけるのに苦労しています。構成をロードして読み通すと、ほとんどの方法を理解できますが、このアプローチにはいくつかの弱点があります。
- 特に IIS ホスティングまたはファイルレス アクティベーションを使用している場合は、各エンドポイントの絶対 URI を取得するのが難しい場合があります。
- プログラムによって行われた構成は、監視サービスによって読み取ることができません。
私ができるようにしたいのは、何らかの方法で ServiceDescription にアクセスして、各 ServiceHost について必要なすべての情報を取得することです。サービス デザイナーの側で情報を提供する必要はありません。このようなことは可能ですか?
azure - Azure ワーカー ロールの WCF サービスが、アイドル状態になった後の最初の要求で遅くなる
ServiceHost を介して (System.ServiceModel.Web を使用して) RESTful WCF サービスを公開する Azure ワーカー ロールがあります。大量のトラフィックでのパフォーマンスは非の打ちどころがありませんが、ロールがしばらくアイドル状態だった最初のリクエストでは、応答時間が大幅に長く (5 秒以上) あるようです。誰がこれを引き起こす可能性があるか知っていますか?
c# - ServiceHost (コンソール アプリ) で実行されている WCF サービス
以前にタスクバーの .asmx サービスで実行されていた WCF サービスをコンソール アプリにラップしようとしています。
WCF サービスをラップするコードは次のとおりです。
ただし、このサービスを受信する必要があるクライアント アプリケーション (サービスがコンソール アプリにラップされる前に動作していた) は、次のエラーでクラッシュします。
メッセージを受け入れることができるhttp://localhost:5000/CheckoutService.svcでリッスンしているエンドポイントはありませんでした。これは、多くの場合、アドレスまたは SOAP アクションが正しくないことが原因です。詳細については、InnerException (存在する場合) を参照してください。
app.config でのこのクライアントのエンドポイント構成は次のとおりです。
.config
おそらく、WCF サービスをホストしているコンソール プロジェクトで何らかの形式のファイルが不足していると思いますが、間違っている可能性があります。
java - サーバー アプリケーションを使用せずに Java Web サービスをデプロイする
サーバー アプリケーションを必要とせずに Java Web サービスを展開しようとしています。実行可能ファイル (C# の ServiceHost クラス) をホストすることで C# WCF サービスをデプロイできることはわかっていますが、Java でも同様のことができますか?
.net - スコープ外になるとWCFServiceHostが開いたままになるのはなぜですか?
私は自分のWCF(自己ホスト型)コードを片付けていて、ServiceHostオブジェクトが最初にセットアップされた後、スコープ外になっていることに気付きましたが、それでも接続できました。
これをもう一度呼び出して再インスタンス化してもう一度開くと、エンドポイントに接続されているものがすでにあるというエラーが表示されます。アプリケーションがシャットダウンしたときにのみリリースされます。
Open()の呼び出しは、現在は管理されていない方法で開いたままにするために、より低いレベルで何かを実行すると想定することしかできません。しかし、私がここで物事を完全に誤解していない限り、これに関する情報を見つけることはできません。
そしてそれについて考えると、これは実際には接続がまだ開いているようには見えませんが、アプリを強制終了せずに接続に戻る(閉じるなど)方法はありません。それとも、これは問題ではないかもしれませんが、何も害がなければ、常に開いたままにしておくことができますか?
更新:それで、スコープ外になった後も開いたままになる理由についての私の最初の質問を説明しているので、Eiverの答えを受け入れました。しかし、私は今、これについていくつかのことを疑問に思っています(またはおそらく私のスレッドの経験不足)。第一に、それが開いている限り、私はこのcosについて悩んでいますか?それがすべて正しいことです。また、スレッドをスコープ内に保持してスレッドにアクセスする方法がある場合は、それも役立ちます。たぶん、このように設定すると(そして決してcloseを呼び出さないで)、呼び出しコードが単純になり(つまり、参照を保持する必要がなくなります)、静的メソッドでラップしてさらに単純な呼び出しを行うこともできます。すべてが少しかわすように聞こえます....うーん!
更新2:それで、この方法でそれを行うのは良くないことを知っていました。それは、ホストとそれが開始されたスレッドを制御できなくなったことを意味するからです。そのため、すべてをシングルトンとしてラップし、任意の時点(エラー、イベント、同じエンドポイントでのクローズ/再開など)でホストにアクセスでき、呼び出しを非常に単純にする(単純な静的メソッドのように)という利点があります。電話)。
c# - タイプがジェネリックを持つ ServiceHost を実行することは可能ですか?
例えば
この場合、T は TransactionProcessingService です。
これまでのところ、アプリの構成でエラーが発生しており、どのように変更すればよいかわかりません:
サービス 'TransactionProcessingWindowsService.TransactionProcessingService`1[[Common.TransactionProcessing, Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]' にはアプリケーション (非インフラストラクチャ) エンドポイントがありません。これは、アプリケーションの構成ファイルが見つからなかったか、サービス名に一致するサービス要素が構成ファイルに見つからなかったか、サービス要素にエンドポイントが定義されていなかったためである可能性があります。
これが私の設定をセットアップしようとした方法です
ありがとう
windows - HTTPS を WCF および Windows サービスと連携させる
WF_WCF_Samples\WCF\Basic\Services\Hosting\WindowsService\CS\WindowsService.sln にある MS サンプル アプリケーションのクライアントとサービスの App.config ファイルを更新して、セキュリティで保護されたバインディングが使用されるようにしましたが、クライアントが呼び出しを行ったときにサービス メソッドで例外がスローされる
「https:// .... /servicemodelsamples/service への HTTP 要求の作成中にエラーが発生しました。これは、HTTPS の場合、サーバー証明書が HTTP.SYS で適切に構成されていないことが原因である可能性があります。これはまた、クライアントとサーバー間のセキュリティ バインディングの不一致が原因です。」
内部例外「基になる接続が閉じられました: 送信時に予期しないエラーが発生しました」
サーバーとクライアントの両方の構成が一致してトランスポート セキュリティ モードを使用し、mex エンドポイントが mexHttpBinding ではなく mexHttpBinding を使用し、サービスの動作が適切に有効になっていることがわかります。
何度も微調整を試みましたが成功しなかったので、何が欠けているか、間違っているか教えてもらえますか?
ありがとう
サーバーとクライアントの設定は
と
wcf - ユニットテストのWCFサービス/サービスホストは、DI、AutoMapper、ブートストラップ、グローバルエラー処理を適切に初期化する方法は?
WCF パイプラインに緊密に統合されているため、テスト方法がわからないことがいくつかあります。統合テストの方法を尋ねるべきでしょうか?これが私の状況です。2つの部分があります:
1) DI をブートストラップするために (私は Unity コンテナーを使用しています)、カスタム ServiceHostFactory を実装しました。このサービス ホスト ファクトリでは、ブートストラップ コードを渡します (たとえば、AutoMapper など)。
これらすべてのアイテムが呼び出され、構成が正しいことをテストするにはどうすればよいですか? 確かに、これを入力すると、これは統合テストと見なされるべきでしょうか? サービスをホストし、テストでテストするにはどうすればよいですか?
2) サービス用のグローバル エラー ハンドラもあります。例外をスローするモック テストを作成し、グローバル エラー ハンドラーが実際に例外をキャッチしていることを確認したいと思います。
ありがとう!
更新:私の質問はあまり明確ではないかもしれませんが、さらにグーグルで調べた後、これが私が求めているものだと思います
追加の考えや指針をいただければ幸いです。どの方向に進むべきかわからないため、まだ試していません。