Tag: windows services

Windows服务可变生命周期

我想了解Windows服务上的可变生命周期。 我有一个SQL表,临时表存储我的应用程序的INFLOW和OUTFLOW记录。 我声明了两个全局变量,如下面的变量,我从临时表中分配行ID。 int iTempKeyInflow = 0; int iTempKeyOutflow = 0; 在经过的时间,我会丢失服务在上一次运行中处理的值。 基本上,如果计时器在完成一个循环的执行之前到期,那么服务循环是否仍然在后台运行。 那么我可以在一秒钟内从表中处理100条记录吗?

如何使WCF接口使用服务中声明的变量

我最近在这里遵循了MSDN教程,以便使用WCF进行服务。 我现在关心的是如何访问CalculatorWindowService从CalculatorService声明的变量,以便我可以修改它的值以供以后在CalculatorWindowService使用。例如,如果我在Add,Subtract,Divide和Multiply的方法中,如果我还想要存储结果到List DoubleList声明的List DoubleList using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ComponentModel; using System.ServiceModel; using System.ServiceProcess; using System.Configuration; using System.Configuration.Install; namespace Microsoft.ServiceModel.Samples { // Define a service contract. [ServiceContract(Namespace = “http://Microsoft.ServiceModel.Samples”)] public interface ICalculator { [OperationContract] double Add(double n1, double n2); [OperationContract] double Subtract(double n1, double n2); [OperationContract] double Multiply(double n1, double n2); […]

Windows服务中的多个线程

我有一个Windows项目和一个表格,每5秒有一个计时器。 它从请求命名表时间和条件方式调用和处理方法。 但我有一些方法类型需要花费太多时间来响应并希望这些方法在单独的线程中。 这样我就可以在单独的线程和同步中运行这两种请求类型。 如何使用线程 – 多异步线程将它们分开?

套接字服务器一直在监听

要求是服务器套接字应该始终接受客户端套接字连接(Windows服务应用程序)。 下面是几个小时可以正常工作的代码,但是在一段时间之后接受根本不起作用。 为了始终保持接受,我还有每隔10分钟连接服务器的线程。 通过这种方式我知道服务器套接字已经停止一段时间(几个小时) public void StartReceiveNotification() { if (!isStarted) { try { byte[] bytes = new Byte[1024]; var ips = Dns.GetHostAddresses(Dns.GetHostName()); var myAddress = ips.FirstOrDefault(ip => ip.AddressFamily == AddressFamily.InterNetwork); assigningIp = myAddress; server = new TcpListener(myAddress, 11001); server.Start(); AcceptSockets(); isStarted = true; } catch (Exception ex) { logger.Error(ex); } } } private void AcceptSockets() […]

在Windows服务中禁用特定的USB磁盘

有谁知道如何防止在Windows服务中安装特定的USB磁盘/闪存? 我不想禁用所有USB端口,我只是阻止安装特定的USB磁盘。 我正在使用Windows 7。

Windows服务中的Quartz Job Scheduler

我有这个Windows服务项目的OnStart方法看起来像这样 protect void OnStart(string[] args) { IScheduler someScheduler = _schedFactory.GetScheduler(); // _schedFactory is a priva field of the service class IJobDetail someJob = JobBuilder.Create() .WithIdentity(“SomeJob”) .Build(); ITrigger someTrigger = TriggerBuilder.Create() .StartAt(new DateTimeOffset(DateTime.UtcNow.AddSeconds(30))) .WithSimpleSchedule(schedule => scheduler.WithIntervalInMinutes(3).RepeatForever()) .Build(); someScheduler.SchedulerJob(someJob, someTrigger); someScheduler.Start(); } 我使用Visual Studio Developer命令提示符来安装该服务。 该命令是installutil.exe 。 现在当安装服务时,我去任务管理器并启动它。 在OnStart方法的顶部有Thread.Sleep(10000) ,所以我可以设法使用调试器附加到服务。 因此,当它附加时,我会通过代码,没有什么特别的事情发生,我的意思是没有exception发生。 我甚至看到应该执行工作的时间和正确的时间。 当我坐在调试模式并等待作业的Execute方法执行时,它没有。 我的意思是,到时候,visual studio正在加载符号,但作业本身并没有被执行。 可能是什么问题? 还有一件事我在这个OnStart方法中创建了两个作业。 […]

如何在.NET 1.1中为Impersonation将用户凭据从一个进程传递到另一个进程?

我有一个在特定用户帐户下运行的Windows服务(用.NET 1.1编写)和在多个服务器上运行的服务实例。 我想将用户凭据(用户名,密码,域)从WinForms应用程序传递给服务,并让服务器的本地文件系统中的服务读/写文件模拟传入的凭据。 是否更好地传递用户名,域和密码并让Windows服务执行模拟? 我没有看到如何序列化WindowsIdentity并传​​递一个作为参数,让服务然后执行I / O周围的Impersonate()和Undo()。 作为容器对象,System.Net.NetworkCredential未标记为可序列化,因此传递三个单独的参数似乎是合乎逻辑的。 我基本上使用KB306158中的Impersonation例程。

C#InstallUtil / ManagedInstallerClass:为什么键值对不会传递给安装程序上下文参数集合?

我将服务名称传递给参数列表,但是当我查看安装程序上下文时,它不存在: args = new[] { Assembly.GetExecutingAssembly().Location, “/ServiceName=WinService1” }; ManagedInstallerClass.InstallHelper(args); 为什么键值对不会传递到安装程序上下文中? public override void Install(IDictionary stateSaver) { foreach (var param in Context.Parameters) { // ServiceName is not available in the Parameters collection } }

C#Windows服务:该服务没有响应开始

这是我第一次尝试创建一个调用多个线程的Windows服务。 我做的是创建一个控制台应用程序,然后添加一个Windows服务和安装程序。 我的代码如下。 partial class Service1 : ServiceBase { public Service1() { InitializeComponent(); } protected override void OnStart(string[] args) { System.Timers.Timer timer1 = new System.Timers.Timer(); timer1.Interval = 10000; timer1.Start(); timer1.Elapsed += new ElapsedEventHandler(timer1_Elapsed); } public static void timer1_Elapsed(object sender, EventArgs e) { Program.ThreadController(); } protected override void OnStop() { // TODO: Add code here to […]

Windows服务应用控制器

这是前提: 我有一个桌面,我需要能够启动和停止应用程序,但无法远程访问。 我想到的是在机器上设置一个服务,它将按照说明启动/停止应用程序列表。 此Windows服务将定期为Web服务提供新命令,并相应地执行它们。 这些是我的问题。 1)这是最简单的解决方案吗? 你还会推荐什么? 2)从Windows服务运行exe有多难? 停一个怎么样? 这不是一个项目或任何东西,只是我感兴趣的实现(主要是为了好玩)。 任何答案甚至想法都表示赞赏。 也欢迎进行一般性讨论(随时发表评论)。