2012-02-03 3 views
1

私はC#で書いたサーバーを持っています。私はそれを使って再構成したり、キャッシュを削除したり、ユーザーを切断したり、実行コンソールを表示したりするために、インターフェイスをとる必要があります。これらのことを行うためにサーバーをシャットダウンすることはできません。ローカルホストのWindowsサービスとのインターフェイス

利用可能な2つのオプションは、Tcp接続によるサーバーとのインターフェイス、またはWindowsの規約(WCFの一部)を使用します。 1は、より信頼性の高いまたは「ベストプラクティス」である

:何とか管理にアクセスするための

  • TCP接続と問題の要求(のみ管理/メンテナンス要求はもちろんのローカルホストから来てみましょう)OR
  • 使用WCF /アセンブリ内のメンテナンス方法?

いつも有用なフィードバックをお寄せいただきありがとうございます。

編集:誰もWCFの代替手段を提供できますか?サーバー自体は文字通り65kbです。それは小さいです。私が今しようとしているのは、いくつかの管理/保守コマンドをからに発行することです。私はサーバーにしようとしていない、それはすでに行われています。私はちょうど地元のホストのユーザーランドアプリケーションと対話したい。

EDIT 2:問題解決:私は、すでに構築済みのプロトコルにリクエストを発行するために非常に小さなTcpクライアントを使用しています。わずか数百行に過ぎず、嵩張った過剰なWCFを使用する必要はありませんでした。 WCFはちょうど...あまりにも多くのようです。それは私がとにかく(そして今は)勉強する必要があると言いました、フィードバックのおかげで!

+1

[カスタムサービスコマンド](http://stackoverflow.com/questions/3695245/how-to-send-a-custom-command-to-a-net- windows-service-from-net-code)?コマンドで多くのパラメータを送信する必要がある場合や、サービスがデータを返す必要がある場合は、十分ではない場合があります。 – Blorgbeard

+1

@Blorgbeardこれは良いスタート地点です。今のところ、戻り値を取得する必要があります(接続されたクライアントのリスト、キャッシュサイズ/カウントの詳細など)。 – kmarks2

+0

WCFを使用してトランスポートを実行するように構成できます。 TCPやHTTPを含む多くのオプションがあります。ローカルで動作しているので、カスタムTCPソケットプロトコルを開発するよりもおそらく最も簡単で可能性の高い名前付きパイプを使用することもできます。 – kenny

答えて

2

私は間違いなくWCFの使用をお勧めします。エンドポイントと契約を定義し、バインディングを使用して通信の仕組み(TCP、XML SOAP、名前付きパイプ、メッセージキューなど)を構成します。

この技術は、TCPからHTTP SOAPに移行する場合は、の設定ファイルを更新するだけです。 を更新するコードはありません。また、HTTP(SOAPメッセージ)を使用し、任意の言語/プラットフォームからサービスを使用するようにWCFを構成できるので、完全に相互運用可能です。また、Web上にたくさんのチュートリアルやサンプルがあります。ここで

は、WCFホストする方法についてa nice articleます(例ではTCP通信をしていますが、設定を変更することで、何か他のものを使用することができます)は、Windowsサービス内

+1

ありがとう。私はおそらく最終的にWCFを知る必要がある他の理由がないなら、これを調べています。 – kmarks2

0

Windowsサービス内のWebサービスをホストすることができます。それはもちろんTCPですが、クライアント上ではソケットレベルのプログラミングはありません。

あなたはそれの上に安静なインターフェイスを持つことができます。 WCFはいつも私の好みには重すぎるように思えた

+0

フィードバックありがとうございます。 WPF以外に何かありますか?サーバーは既に作成され、完了しています。私はちょうどユーザーランドアプリケーションがサービスにコマンドを送信し、情報を取得するようにしようとしています。 – kmarks2

関連する問題