C#で書かれたWindowsサービスでthis.ServiceName
を使用してプログラムでサービス名を取得するにはどうすればよいですか?私はこれを試してみると、アセンブリの参照を求めていますが、何も受け付けていません:C#で書かれたWindowsサービスでServiceNameを取得するにはどうすればよいですか?
string path = this.ServiceName + ".config";
ですが、そのエラーです。
C#で書かれたWindowsサービスでthis.ServiceName
を使用してプログラムでサービス名を取得するにはどうすればよいですか?私はこれを試してみると、アセンブリの参照を求めていますが、何も受け付けていません:C#で書かれたWindowsサービスでServiceNameを取得するにはどうすればよいですか?
string path = this.ServiceName + ".config";
ですが、そのエラーです。
を使用し取得します。
これを受け取ると、this.ServiceName
のプロパティにアクセスできます。
サンプル:
public partial class Service1 : ServiceBase
{
public Service1()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
string test = this.ServiceName;
}
protected override void OnStop()
{
}
}
あなたがメイン()(Programクラス)からアクセスしたい場合は、その後、あなたはこのような何かを行うことができます。
namespace WindowsService1
{
static class Program
{
static ServiceBase[] _servicesToRun;
static void Main()
{
_servicesToRun = new ServiceBase[]
{
new Service1()
};
string serviceName = _servicesToRun[0].ServiceName;
ServiceBase.Run(_servicesToRun);
}
}
}
main関数からサービス名にアクセスしようとしている最後の入力に基づいて答えを編集しました。 – HABJAN
設定ファイルにアクセスするには、サービス名ではなくアプリケーション名が必要です(標準の.Netアプリケーション設定ファイルを使用している場合)。
アプリケーションの実行可能ファイルは、あなたのサービスがSystem.ServiceProcess.dll
からServiceBase
を継承する必要がSystem.AppDomain.CurrentDomain.FriendlyName
がための.configファイルを見つけるにはあなたのサービスはではありません。サービス名を使用してください。これはCLRの仕組みではなく、EXE名に基づいて.configファイルを選択します。修正:
var path = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;
どのようなエラーが発生しますか? – HABJAN
正確なエラーがどのようなものか教えていただけますか?コンパイラでエラーが発生した場合は、表示されたとおりに投稿すると便利です。それは単に "そのエラーを出す"よりも多くの情報を私たちに提供します。 –
あなたのコードはこの質問と何が関係していますか?そして、あなたはどんなエラーを出していますか? – leppie