Windowsサービスを構築する最も簡単な言語は何ですか?Windowsサービスを作成するための最も簡単な言語
この場合、もっとも簡単なコード量と言語への最低限の入力点として定義するのが最も簡単です。
Windowsサービスを構築する最も簡単な言語は何ですか?Windowsサービスを作成するための最も簡単な言語
この場合、もっとも簡単なコード量と言語への最低限の入力点として定義するのが最も簡単です。
明らかにC/C++/Javaのバックグラウンドがある場合、C#はあなたに最も低いエントリポイントを提供すると思います。
あなたは、Visual Studio 2008を使用していると仮定すると、次の手順を実行することができます。
false
に設定 - 例えば、ServiceExampletrue
に設定してください。true
に変更した場合は、OnShutdownメソッドもオーバーライドする必要があります。私は、これらの関数の使用法を示す以下の例を作成しました。using System.Diagnostics;
[RunInstaller(true)]
public partial class ProjectInstaller : Installer
{
public ProjectInstaller()
{
InitializeComponent();
EventLogInstaller installer = FindInstaller(this.Installers);
if (installer != null)
{
installer.Log = "ServiceExample"; // enter your event log name here
}
}
private EventLogInstaller FindInstaller(InstallerCollection installers)
{
foreach (Installer installer in installers)
{
if (installer is EventLogInstaller)
{
return (EventLogInstaller)installer;
}
EventLogInstaller eventLogInstaller = FindInstaller(installer.Installers);
if (eventLogInstaller != null)
{
return eventLogInstaller;
}
}
return null;
}
}
、あなたのWindowsサービスの実行可能ファイルを取得するためのプロジェクトをビルドすることができます。サービスをインストールするには、Visual Studio 2008コマンドプロンプトを開き、実行可能ファイルがあるDebugまたはReleaseディレクトリに移動します。コマンドプロンプトで次のように入力します。InstallUtil ServiceExample.exe。これにより、サービスがローカルマシンにインストールされます。アンインストールするには、コマンドプロンプトで次のように入力します。InstallUtil/u ServiceExample.exe
サービスが実行されていない限り、サービスを変更して再構築することができます。サービスをアンインストールして変更する必要があります。ただし、実行中であれば、修正プログラムや拡張機能で実行可能ファイルを上書きすることはできません。
は、アクションにあなたのサービスを見るServiceExample.csファイルを開き、以下の変更を行います:
using System.Diagnostics;
public partial class ServiceExample : ServiceBase
{
public ServiceExample()
{
// Uncomment this line to debug the service.
//Debugger.Break();
InitializeComponent();
// Ties the EventLog member of the ServiceBase base class to the
// ServiceExample event log created when the service was installed.
EventLog.Log = "ServiceExample";
}
protected override void OnStart(string[] args)
{
EventLog.WriteEntry("The service was started successfully.", EventLogEntryType.Information);
}
protected override void OnStop()
{
EventLog.WriteEntry("The service was stopped successfully.", EventLogEntryType.Information);
}
protected override void OnShutdown()
{
EventLog.WriteEntry("The service was shutdown successfully", EventLogEntryType.Information);
}
}
あなたはこれらの変更を使用してサービスを実行したら、イベントでServiceExampleイベントログを見ることができますビューアを開き、そこに記録されたメッセージを参照してください。
これが役に立ちます。
EDIT:アプリケーションイベントログをカスタムログではなくイベントログに使用する場合は、ProjectInstaller.csファイルを変更しないでください。さらに、EventLogのLogプロパティをServiceExampleコンストラクタに設定する行を省略します。サービスを実行すると、ログメッセージがアプリケーションイベントログに表示されます。
Visual StudioとC#が最も簡単でした。
Visual Studioは、フレームワークのために必要なサービス配管の設定のすべてを行なったし、私は、あなたが最もを見つけることができますビジュアルC#でVB6、VB.NETとC
から移行し、学ぶためにC#は非常に簡単に見つけネット上のコードサンプル。 Visual Studioと組み合わせると、基本的なWindowsサービスを起動して実行するための公園内を歩いています。 Visual Studioでは、MSIインストーラパッケージを簡単に作成できます。
私
C#またはVB.NETを使用して、Visual Studioのサービスタイプのプロジェクトを使用することを選ぶことになります。
私は個人的にはC#が好きですが、一般的にライフサイクルを理解し、ロジックを目的の段階でコーディングするのは簡単です。
インストーラのビルドも非常に簡単です。
C#のWindowsサービスプロジェクトは、ボタンをクリックするだけでVisual Studioテンプレートから完全に展開可能なサービスを提供します。ペイロードコードを追加するだけです。
私は.NET Frameworkで作業している限り、実際の言語にあまり集中しないと言いますが、あなたには初心者のプロジェクトがあります行くのがいいよ。私は過去にいくつかの "Windowsサービス"を行い、VB.NETとC#の両方で最小限のコードでそれらを開発しました。
OPには、インストーラパッケージをビルドする方法を習得することをお勧めします。サービスをインストールするのは "installutil.exe {drive}¥path¥to¥file.exe"と同じくらい簡単ですが、 "hello world" Windowsサービスを展開するよりも何もする必要がある場合は、意味のある方法でサービスを展開します。
炎の戦争は始まらないが、古い学校のCOM相互運用型のものを除いて、すべての展開パッケージに対してWiXを「標準化」しました。これは正しくインストールするための作業です。私は、WiXチームが、前提条件とメインmsiをダウンロードできるEXEファイルに入れることを可能にするブートストラップ部分を開発することを心配しています。彼らは3.5に向けて予定されているので、私は辛抱強く待って、WinZip自己解凍型実行ファイルを今のところ使います。
うわー!これは古い投稿です。私はHeat.exeの使い方を学び、WiXを使って相互運用可能なlibsを使うのに必要なビットを抽出しました。 –
InstallUtil.exeを使用する代わりに、コマンドラインからサービスをインストールするには、ここの私の投稿を参照してください:http://stackoverflow.com/questions/1195478/how-to-make-a-net-windows -service-start-the-installation-after-the-installation/1195621#1195621 –
+1非常に有効な回答です。 –
クラス/インターフェイスをサービスからエクスポートしてクライアント(ローカルシステムサービス)から呼び出すにはどうすればよいですか? – sarat