我编写了一个wcf服务,然后使用TCP.and在windows服务中宿主wcf,然后使用命令Installutil WindowsServiceSendMail.exe在windows 7上注册它。
我的问题是,当我右键单击service1(在windows 7上的窗口服务)并单击start时,服务不会启动。我读了这个文章,一步一步地向前走,但是结果没有收到。
这是解决方案中的RunProgram() wcf项目方法。
[OperationContract]
void RunProgram();
public void RunProgram()
{
//code for check database
}这是解决方案中windows服务项目中的代码。
protected override void OnStart(string[] args)
{
if (myServiceHost != null)
{
myServiceHost.Close();
}
myServiceHost = new ServiceHost(typeof(Service1));
myServiceHost.Open();
}
protected override void OnStop()
{
if (myServiceHost != null)
{
myServiceHost.Close();
myServiceHost = null;
}
}然后,我从wcf project向windows服务项目添加了一个引用。
然后使用命令Installutil WindowsServiceSendMail.exe在windows 7上注册它。
您可以从这里下载项目。
我的问题是,当我右键单击service1(在windows 7上的窗口服务)并单击start时,服务不会启动。
发布于 2015-06-11 08:18:19
我发现了问题所在。我改变了OnStart方法。
protected override void OnStart(string[] args)
{
if (myServiceHost != null)
{
myServiceHost.Close();
}
myServiceHost = new ServiceHost(typeof(SendMailService));
myServiceHost.Open();
WcfSendMail.SendMailServiceWCF s = new WcfSendMail.SendMailServiceWCF();
s.RunProgram();
}发布 windows服务项目和在发布文件夹中运行setup.exe。当然,使用命令Installutil WindowsServiceSendMail.exe在windows 7上注册它。
https://stackoverflow.com/questions/30756969
复制相似问题