問題タブ [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.
c# - 同じソケットでWCFサービスとTCPサーバーをホストする方法は?
今日、セルフホスティングの WCF サービスに ServiceHost を使用しています。
WCF サービスの近くで、直接ソケット操作用の独自の TCP プログラムをホストしたい (ある種のブロードキャスト TCP ストリームへのリーエンなど)
URL 名前空間を制御する必要があります (そのため、example.com:port/myserver/stream?id=1 や example.com:port/myserver などの適切な URL を使用して、クライアントが TCP ストリームをサービスに直接送信できるようにする必要があります)。 /stream?id=anything であり、一度に 1 つのソケットに対して 1 つのクライアントという考えに煩わされないように、WCF サービスを自分のサーバーと同じポートに保持したい、またはそうあるべきであるwww.example.com:port/myWCF/stream?id=222... を呼び出すことができ、80 だけでなく任意のポートで動作するようにしたい)
これで私を助けてくれる体はありますか?
現在、WCFのみを使用しています。そして、私はそれがどのように機能するかを楽しんでいません。これは、TCP をクリアするために移行を開始したい理由の 1 つです。)
net-tcp バインディングやその他のクールな WS-* バインディングは使用できません (今日は、Flash、AJAX などのクライアントが簡単に接続できるように、最も単純なものを使用しています)。
大量のデータ転送をリアルタイムで行うために、ソケットを使用する前に作成したような接続プロトコルを実装する際に、高速で簡単な接続プロトコルが必要でした。
だから..何かアイデアはありますか?お願いします - 助けが必要です。
c# - これはWCFサービスをホストする正しい方法ですか?
一部のテストコードでは、WCFサービスを数行でホストできるようにしたいと思います。私は簡単なホスティングクラスを書くと思いました:
これは次のように使用できます。
このアプローチに何か問題がありますか?コードに欠陥がありますか(特に廃棄について)?
wcf - 自己ホスト型WCFServiceHost/ WebServiceHost同時実行/パフォーマンス設計オプション(.NET 3.5)
そのため、セルフホスト(WindowsService内)のWebServiceHost(ServiceHostでHTTP GET / POSTを処理する方法がわからない)を介していくつかの関数を提供します。そのうちの1つは、かなりの時間呼び出される可能性があります。この関数は、appdomain内の接続にも依存します(WindowsServiceによってホストされるため、複数の要求にわたって存続できます)。
私は次の懸念を持っており、入力/考え/コメントにとても感謝しています:
- 同時アクセス-WebServiceHostは一連の同時要求をどのように処理しますか。それらはキューに入れられて順番に処理されますか、それともコントラクトの新しいインスタンスが自動的に作成されますか?
- WebServiceHost-> WindowsService通信-新しいセッションが存在しない場合にそれを要求するなどのために、WebServiceHostからホスティングWindowsServiceへの何らかの形式の通信が必要です。おそらく、WindowsServiceがサブスクライブするイベントでWebServiceHostを拡張するクラスを実装しています...(要求が行われたときにWindowsServiceでイベントを開始できる別の方法がない限り...)
- 複数のWebServiceHostsまたはコントラクト-異なるスレッドで複数のWebServiceHostインスタンスを実行することで実際のパフォーマンスが向上しますか(エンドポイントごとに1つ)-最初のポイントをよりよく理解すると、おそらくここで役立ちます。
- WSDL-理由はわかりませんが(おそらくもっと読む必要があるだけです)、WebServiceHostベースエンドポイントが利用可能なコントラクトを説明するWDSLドキュメントで応答するようにする方法はわかりません。すべての操作はGETリクエストを介して行われるため、必須ではありませんが、変更される可能性は低いですが、...
それは今のところそれについてです;)私はWCFについてたくさん読んでいて、ずっと前にそれに夢中になったらいいのにと思いますが、間違いなくまだ学んでいます。
c# - WCF Web/ServiceHost-シングルトンと初期化
InstanceContextMode.Singleとして定義され、ホスティングアプリケーションでよく知られているServiceクラスがあります。(ホストはインスタンスを作成し、それをWebServiceHostに渡します)
ホスティングアプリ:
問題:サービスの作成時に初期化された変数(つまり、サービスへの呼び出しが行われたとき)を使用しようとすると、それらはnullまたは空になります...
ホスティングアプリケーションで初期化されているインスタンスがWebServiceHostへの各リクエストに使用されると仮定するのは間違っていますか?
ここでのポインタは素晴らしいでしょう。
c# - WCFServiceHostを別のコンピューターにルーティングする
良い一日、
私はWCFに関しては第一人者ではありませんが、基本は知っています。
私の質問は、コードがマシンYにあるときに、マシンXにServiceHostを作成するにはどうすればよいですか?
このコードを開発マシン(localhost)でビルドして実行した場合:
http://my.datacenter.com/MyApp/MyService1をポイントする必要がある場合に、サービス操作を開発マシン(localhost)にルーティングするために、データセンターサーバーでどのような実装を行う必要がありますか。
ただし、インターネット経由でデータセンターにアクセスすることはできません。
データセンターのURLを呼び出すだけで、すべてのお客様がそれぞれのマシンで実行されている他のカスタマーサービスを呼び出すことができるように、サービスバスタイプのアーキテクチャを作成できるかどうかを調査しているインフラストラクチャの可能性があります。
Windows Azureを見てきましたが、活用したい独自のデータセンターインフラストラクチャがあります。考えてみてください。非常に基本的な規模で、独自のAzureを構築しています。
これをどのように作成しますか?
前もって感謝します
wcf - netsh で構成に追加されているにもかかわらず、Servicehost がエラーをスローする
ServiceHost.Open()
このエラーをスローしています:
HTTP は URL http://+:8001/を登録できませんでした。プロセスには、この名前空間へのアクセス権がありません (詳細については 、http: //go.microsoft.com/fwlink/ ?LinkId=70353を参照してください)。
そこで、 netshを使用して URL を追加しました。しかし、イベントは追加されていますが、まだエラーが発生しています。これは私が使用するコマンドです:
netsh http add urlacl url=http://+:8001/ user=djerryy
djerryy
は私のコンピュータ名です。netsh http show urlacl を実行すると、追加されていることがわかります。
私は何を間違っていますか?
前もって感謝します。
.net - WCF スレッド - 応答しない UI
私はいくつかのWCFのものを設定しようとしています。現在、リモートユーザーがファイルをダウンロードできるサーバーとクライアントがあります。サーバーでは、ServiceHost クラスを使用します。別のスレッドで実行する必要があると思いますが、誰かがファイルをダウンロードすると、サーバー UI (WinForms) がロックされます。WCF スレッド モデルを管理する方法はありますか?
ありがとうございました!
wcf - ServiceHost オープン遅延
Windows 7 Ultimate (XP から) でワークステーションを更新してから、インスタンス化された ServiceHost で Open() を呼び出した後、約 40 秒の遅延が発生します。
ホストWindowsサーバーで同じ構成でexeを実行すると、すぐに開きます。ワークステーションでのこの動作に関するアイデアはありますか?
Visual Studio 2010 Ultimate、Windows 7 Ultimate x64、8 ギガ RAM を実行。
更新.... 1. サービス mex エンドポイントを削除する (単一の net.tcp エンドポイントを残す) 2. サービス ホスト http ベース アドレス 3. サービス動作 httpGetEnabled
問題を解決します。net.tcp エンドポイントを変更して basicHttpBinding を使用すると、Open に 40 秒かかります。しかし、http エンドポイント (mex またはサービス コントラクト) でエンドポイントをセットアップするのに 40 秒の遅延があるのはなぜですか?
c# - ローカル管理者でなくても IPC を使用するには?
現在、.Net で内部アプリケーションを管理しています。アプリケーションは IPC を使用して、一度に 1 つの実行中のセッションを維持します。別のセッションを開こうとすると (誰かがアイコンを再度クリックし、保存された結果ファイルを開く人もいます)、2 番目のセッションがこれを最初のセッションに伝えてから終了し、最初のセッションが要求されたアクションを起動します。
私は現在、次のように System.ServiceModel 名前空間を使用してこれを行っています。
namespace EventLogViewer.IPCServer { //プロセスが相互に通信するための共通フレームワークを提供します。
ほとんどの企業と同様に、Vista に移行しなかったため、このコードはもともと Windows XP で開発されました。私たちは全員ローカル管理者として実行しているため、このコードは問題なく実行されました。
ただし、現在 Win 7 に移行中であり、このコードは IPC エンドポイントを登録できないため、起動時に例外を生成します。詳細はこちら: http://mark.michaelis.net/Blog/WindowsCommunicationFoundationWithWindowsVistaAndUAC.aspx
与えられた回避策は、アプリを管理者権限を必要とするようにすることです。これは、次の 2 つの理由で機能しません。
- それ以外の場合、このアプリは管理者権限を必要としません
- 内部ツールの展開には ClickOnce を使用していますが、ClickOnce はプロセス ランチャーとして実行する以外には何もサポートしていません。
したがって、この時点で、管理者特権を必要とせず、元の目標を達成できる IPC ソリューションを見つける必要があります。つまり、既に実行されているコードのインスタンスを検出し、何をすべきかを指示し、それ以外の場合はそれ自体を起動します。何をすべきかについての提案(.Netフレームワーク内で、サードパーティのソリューションはありません)をいただければ幸いです。
c# - WCF ServiceHostがクラッシュする原因は何ですか?
WCFを使用して4つのポートで同じインターフェイスを公開するWindowsサービスがあります。アドレスは次のとおりです。
このサービスは長い間運用されており、中断することがあり、問題のあるポートにTelnetで接続することさえできません。私は通常、サービスをリセットする必要があります。
同じコントラクトに多くのポートがあるという意味は実際にはわかりませんが、このソリューションはおそらく元の問題を覆い隠していました。
とにかく、サーバー側でサービスホストをクラッシュさせる原因は何でしょうか?クライアントがサービスホストをクラッシュさせる可能性がありますか、それともある種のサービス拒否に関連している可能性がありますか?
PS:この問題は散発的に発生し、開発で再現することはできません。本番環境でトレースを使用することも実用的ではありません。
ありがとう