各位前辈:
     我用v4.0框架,制作一后台服务通过Timers定时执行方法,程序中引用了一DLL文件,但只要一经实例化这个dll,服务启动后就没有定时去执行这个方法,又不报错,压根就没有进入此方法,catch也没有捕获异常,注释实例化这行代码,服务又可正常运行。我另外创建一个window窗体应用程序与服务是同样的代码,能够正常运行,我就纳闷了,困扰了,高手们指点一二啊。另外程序引用的DLL文件我之前在不同的路径下注册过,现在一注册就出现 已加载dll 但没有找到DLLRegisterServer 输入点。无法注册这个文件。我想不会是这个原因吧!因为我用于测试的窗体程序也没有注册.但照样能运行。求解protected override void OnStart(string[] args)
        {
            // TODO: 在此处添加代码以启动服务。
            string path = @"D:\\logServer.txt";
            FileStream fs = new FileStream(path, FileMode.Append, FileAccess.Write);
            StreamWriter sw = new StreamWriter(fs);
            sw.WriteLine("{0} 记录时间:{1}", "启动服务", DateTime.Now.ToString());
            sw.Flush();
            sw.Close();
            fs.Close();            time = new System.Timers.Timer(1000 * 4);
            //间隔时间
            time.Enabled = true;
            time.Elapsed += this.TimeOut;
            time.Start();
        }        protected override void OnStop()
        {
            string path = @"D:\\logServer.txt";
            FileStream fs = new FileStream(path, FileMode.Append, FileAccess.Write);
            StreamWriter sw = new StreamWriter(fs);
            sw.WriteLine("{0} 记录时间:{1}", "停止服务", DateTime.Now.ToString());
            sw.Flush();
            sw.Close();
            fs.Close();
            // TODO: 在此处添加代码以执行停止服务所需的关闭操作。
        }        private void TimeOut(object sender, EventArgs e)
        {
            string path = @"D:\\logServer.txt";
            FileStream fs = new FileStream(path, FileMode.Append, FileAccess.Write);
            StreamWriter sw = new StreamWriter(fs);            sw.WriteLine("{0} 记录时间:{1}", "未判断狗", DateTime.Now.ToString());
            sw.Flush();
            sw.Close();
            fs.Close();            try
            {
                if (!DBUtilitySQL.Exists("select * from Base_SoftDog"))
                {
                    AES myAes = new AES();
                    DBUtilitySQL.ExecuteSql("insert into Base_SoftDog(MsTimestamp) values('" + myAes.AESEncrypt("2010-04-12", true) + "')");
                    sw.WriteLine("{0} 记录时间:{1}", "已做数据库判断", DateTime.Now.ToString());
                    sw.Flush();
                    sw.Close();
                    fs.Close();
                }
                //if (new haspHL().Login())    --------------就是此处代码只要启用,总个TimeOut方法都无法执行
                //{
                //    //sw.WriteLine("{0} 记录时间:{1}", "已判断狗", DateTime.Now.ToString());
                //    AES myAes = new AES();
                //    DBUtilitySQL.ExecuteSql("update Base_SoftDog set MsTimestamp = '" + myAes.AESEncrypt(DateTime.Now.ToString(), true) + "'");
                //}
                //else
                //{
                //    //sw.WriteLine("{0} 记录时间:{1}", "未匹配到加密狗", DateTime.Now.ToString());
                //}
            }
            catch (Exception ex)
            {
                sw.WriteLine("{0} 记录时间:{1}", "出现错误" + ex.Message, DateTime.Now.ToString());
                sw.Flush();
                sw.Close();
                fs.Close();
            }
        }