EXEまたはWindowsサービスとしてデプロイされたスタンドアロンのC#Webサービスを作成することはできますか?

StackOverflow https://stackoverflow.com/questions/1013896

質問

Webサービス要求を処理できるC#EXEまたはWindowsサービスを作成できますか?明らかに、何らかの限定された組み込みのWebサーバーがEXE /サービスの一部である必要があります。 EXE /サービスは、インストールされているIISに依存する必要はありません。できれば、埋め込みWebサービスはHTTPS / SSLタイプの接続を処理できます。

シナリオは次のとおりです。顧客は、企業のマシンに小さなエージェント(Windowsサービス)をインストールしたいと考えています。エージェントには2つの主要なタスクがあります。1)システムを長期にわたって監視し、特定のデータを収集します。2)データ収集またはシステム変更の目的で、Webサービス要求に応答します(SOAP -v- RESTはまだ検討されています)。顧客はWebサービスAPIのアイデアが好きなので、任意の数のクライアント(任意の言語)を記述して、企業のマシンで実行されているさまざまなエージェントを利用できます。彼らは、IISのインストールと構成を必要とせずに、インストールを比較的簡単(.NET、一部のアセンブリ、サービスのインストール、Windowsファイアウォールの変更、サービスの開始)にすることを望んでいます。

Delphiでこれができることを知っています。ただし、可能であれば、顧客はこれをC#で行うことを好むでしょう。

提案はありますか

役に立ちましたか?

解決

はい、可能です。 WCF およびセルフホスティング

他のヒント

はい、可能です(そしてかなり簡単です)。

CodeProjectの記事で基本的なHTTPサーバーの作成方法を示しますC#。これは簡単にスタンドアロンEXEまたはサービスに配置し、Webサービスとして使用できます。

チェックアウトしたい技術の1つはWCFです。 WCFには少し苦労するかもしれませんが、DNRTVで非常に簡単な方法でWCFを開始する方法を示す、Keith Elderによるすばらしいスクリーンキャストがあります。

http://www.dnrtv.com/default.aspx?showNum=135

HttpListener をご覧ください。 .Netフレームワークで。

WCFを強くお勧めします。あなたが説明しているような製品に非常によく適合します。多数のがあります。書籍が利用可能です。

もちろんできます。プロジェクトの出力タイプを必ずコンソールアプリケーションに変更してください。次に、Main関数で、string []パラメーターを追加します。コマンドラインで受け取るスイッチから、ServiceBase.Runに分岐してWindowsサービスとして実行したり、他のコードに分岐してコンソールアプリケーションを実行したりできます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top