Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#服务开发和安装_C#_Asp.net_Service - Fatal编程技术网

C#服务开发和安装

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;

我按照以下指南创建了一个Web服务: 但无法安装我的服务(仅代码就可以作为Windows应用程序完美运行)

我做错了什么

英文错误: System.Security.SecurityException:未找到源,但无法搜索部分或所有事件日志。不可访问日志:安全性

服务代码:

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
        }