C#服务开发和安装
我按照以下指南创建了一个Web服务: 但无法安装我的服务(仅代码就可以作为Windows应用程序完美运行) 我做错了什么 英文错误: System.Security.SecurityException:未找到源,但无法搜索部分或所有事件日志。不可访问日志:安全性 服务代码:C#服务开发和安装,c#,asp.net,service,C#,Asp.net,Service,我按照以下指南创建了一个Web服务: 但无法安装我的服务(仅代码就可以作为Windows应用程序完美运行) 我做错了什么 英文错误: System.Security.SecurityException:未找到源,但无法搜索部分或所有事件日志。不可访问日志:安全性 服务代码: namespace EmailDoc2 { public partial class Emailing : ServiceBase { private Timer time = null;
namespace EmailDoc2
{
public partial class Emailing : ServiceBase
{
private Timer time = null;
public Emailing()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
time = new Timer();
this.time.Interval = 43200000;
this.time.Elapsed += new System.Timers.ElapsedEventHandler(this.timer_tick);
time.Enabled = true;
using (StreamWriter w = File.AppendText("Log Boletas/logBoletas.txt"))
EmailDoc.EmailDoc.Log("Service Started", w);
}
private void timer_tick(object sender, EventArgs e)
{
EmailDoc.EmailDoc.Main();
}
protected override void OnStop()
{
time.Enabled = false;
using (StreamWriter w = File.AppendText("Log Boletas/logBoletas.txt"))
EmailDoc.EmailDoc.Log("Service Stopped", w);
}
}
这是一个新手犯的错误,但最后,页面一点也没有错,我面临的问题是我删除了启动windows服务的部分代码:
namespace EnvioDocumentos
{
static class Program
{
/// <summary>
/// Code bellow is default, never erase
/// </summary>
static void Main()
{
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new EnvioDocs()
};
ServiceBase.Run(ServicesToRun);
}
}
}
名称空间环境文档
{
静态类程序
{
///
///以下代码为默认值,从不删除
///
静态void Main()
{
ServiceBase[]ServicesToRun;
ServicesToRun=新的ServiceBase[]
{
新环境学()
};
ServiceBase.Run(ServicesToRun);
}
}
}
对于像我这样的新手,我强烈建议创建一个新类(Library.cs),在其中调用您的方法,这样您就不会被“我不知道这个服务是如何工作的”所困扰
protected override void OnStart(字符串[]args)
{
timer1=新定时器();
this.timer1.Interval=您的时间;
this.timer1.appeased+=new System.Timers.ElapsedEventHandler(this.timertick);//您能将错误消息的文本翻译成英文吗?添加了翻译您可能还想查看TopShelf库,该库使Windows服务开发更简单、更强大
protected override void OnStart(string[] args)
{
timer1 = new Timer();
this.timer1.Interval = yourtime;
this.timer1.Elapsed += new System.Timers.ElapsedEventHandler(this.timertick); //<== This function starts every "yourtime" in milliseconds
timer1.Enabled = true;
Library.WriteErrorLog("Test start"); //<== best practice ever to write a log every beginning
}