net start servicename
を使用して以前インストールしたサービスを開始しようとしています。C#サービス:エラー開始サービス:標準コンストラクタがありません
サービスが正常にインストールされたこと、レジストリにエントリがあること、および管理ツール領域内のサービスの概要が確認できます。
実際には、イベントログに標準(パラメータなし)コンストラクタがないためにサービスを読み込めないというエラーメッセージが表示されることがあります。シュトラックトレースの
最後の2行が
bei Test.Service.DbService.OnStart(String[] args)
bei System.ServiceProcess.ServiceBase.ServiceQ...
次されている私は、次の方法でサービスを実装:
public partial class DbService : ServiceBase
{
public DbService()
{
InitializeComponent();
this.ServiceName = "Service1";
}
protected override void OnStart(string[] args)
{
if (serviceHost != null)
serviceHost.Close();
Uri[] baseAddress = new Uri[]{
//new Uri("http://localhost:8000"),
new Uri("net.pipe://localhost")};
string PipeName = "Test";
serviceHost = new ServiceHost(typeof(Kernel), baseAddress);
// Add a mex endpoint
ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.HttpGetEnabled = true;
smb.HttpGetUrl = new Uri("http://localhost:8000/DatabaseService/mex");
serviceHost.Description.Behaviors.Add(smb);
serviceHost.AddServiceEndpoint(typeof(IDatabase), new NetNamedPipeBinding(), PipeName);
serviceHost.Open();
}
protected override void OnStop()
{
// do stuff
}
}
と、それは私が最初にサービスを呼び出す方法は次のとおりです。
static void Main()
{
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new DbService() //new instance of class implementing the service!
};
ServiceBase.Run(ServicesToRun);
}
私はこれを正しく行っていることを確認できますか?
ここをクリックしてください。http://msmvps.com/blogs/theproblemsolver/archive/2011/04/19/inversion-of-control-and-wcf.aspx – Azodious
すべての依存アセンブリをインストールしたことがありますか? (最初のインストール以降に依存関係が変更された場合) – jgauffin
依存関係が1つあります。私は、独自のDLL内でサービス契約を抽出しましたが、インストーラを使用して出荷されます(依存関係としてリストされ、インストールフォルダにもコピーされます)。 – inva