2011-01-24 11 views
4

私はC#アプリケーションを常に稼働させる必要があります。もともと私はこれをWindowsサービスにする予定でしたが、アプリケーションホストをWeb管理コンソールにする必要があります。IIS対Windowsサービス?

私の質問はこれですので、私はかなりの数年間にIISでプレイしていない:

あなたは私が使用して何を勧めますか?

私は、Windowsサービスの作成とCassiniなどのWebサーバーの埋め込みについて考えましたが、これまで見てきたオープンソースのWebサーバーには満足できません。

IISはこれを処理できますか?人々はこのタイプのシナリオのためにそれを使用しますか?

+0

サービスは何をしていますか? –

答えて

7

これは2つの別々のプロジェクトの仕事のようです。

1つは、元のWindowsサービスです。 Windowsサービスは、あなたがやっていることに適しています。

2番目は、Windowsサービスの管理に使用されるWebプロジェクトです。これはIISで動作する部分です。

+0

そうですね。その後、サービスを遠隔操作するために何を提案しますか? – Kelly

+0

これは古い質問ですが、Windowsサービス用にHTTP APIを実装する方が簡単なユースケースがありました。サービスは指示を聞き、それに応じて行動した。また、必要に応じてHTMLを出力することもできます。 – Edgar

1

WindowsとWebサービスは、大きく異なる2つの生き物です。 Webサービスは、アプリケーションに対して実装できる外部メソッドを公開しますが、Windowsサービスは内部のエンティティです。このサービスを一定の間隔で使用して操作を実行する予定がある場合は、Windowsサービスが適切な方法です。 Webサービスを使用する場合、セカンダリアプリケーションから実行するメソッドを呼び出す必要があります。

Windowsサービスに対してコマンドをキューイングする必要がある場合は、いつでもWebサイトとWindowsサービスの両方からアクセス可能なデータベースを作成できます。このようにして、2つのコマンドの間でコマンドとクエリデータを送信できます。 Webサービスを2つの間の中間手段として機能させるために、Webサービスを配置することは過度の可能性があります。

2

の意味は、常にです。 IISにデプロイされたASP.NET Webアプリケーションは、すべてのバックグラウンドスレッドを強制終了するための一定の時間の要求がない場合、Webサーバーによって非常にうまくアンロードできます。したがって、実行中のバックグラウンドスレッドが必要な場合は、Windowsサービスを使用する方が適しています。 Web管理者が関わっている限り、ここでは選択肢があまりありません。IISはASP.NETです。有用な何かをするためには、これらの2つのアプリケーションは、共通の言語を見つけることができなければなりません。したがって、データベースを使用して、両方のアプリケーションで使用できる結果を格納することができます。

2

IISは、サーバーの起動時ではなく、最初の要求時にアプリケーションを実行します。したがって、アプリが常に稼働していることを確認するためには、サービスを実行する必要があります。

Web管理者用のWebサーバーとしてIISを使用し、構成データベース(簡単)またはWebサービス(少し難しい)を使用してASP.netアプリケーションをサービスにリンクすることができます。

関連する問題