我写了 wcf服务,然后在 Windows服务中使用 TCP 编写主机wcf,然后使用命令 Installutil WindowsServiceSendMail .exe 在 Windows 7 上注册。
我的问题是,当我右键单击 service1 (在Windows 7上的窗口服务上)并单击“开始”时,服务无法启动。 我读了这个article并且我一步一步前进但结果没有收到。
这是解决方案中 wcf项目中的RunProgram()方法
[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 projec t的引用添加到 Windows服务项目
然后使用命令 Installutil WindowsServiceSendMail.exe 在Windows 7上注册
您可以从here
下载项目我的问题是,当我右键单击 service1 (在Windows 7上的窗口服务上)并单击“开始”时,服务无法启动。
答案 0 :(得分:0)
我发现了这个问题。我更改了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上注册它。