Tag: windows services

重启后Windows服务不会自动启动

我的自动启动Windows服务无法仅在重新启动时启动。 我有一个用C#创建的Windows服务,并通过Wix创建的安装程序安装。 该服务设置为自动启动。 该服务在NT AUTHORITY \ NETWORK SERVICE下安装和运行。 服务启动后,它首先进行外部Web服务调用。 在Windows 7中,我可以将服务设置为自动 – 延迟启动,服务将在重启时启动没问题。 但是,此选项在Windows XP中不可用,并且当设置为“自动启动”时,服务将因此失败 A timeout was reached (30000 milliseconds) while waiting for the MyService service to connect. 如果我尝试在登录过程后手动启动,服务启动正常,只有当服务尝试在重新启动时自动启动存在问题时,才会让我相信我需要添加到我的服务中的依赖服务让它正确启动。 任何人都可以指出正确的依赖关系或替代方法吗?

如何从ServiceController确定Windows.Diagnostics.Process

这是我的第一篇文章,所以让我先说一下你好! 我正在编写一个Windows服务来监视同一服务器上许多其他Windows服务的运行状态。 我想扩展应用程序以打印一些服务的内存统计信息,但是我无法解决如何从特定的ServiceController对象映射到其关联的Diagnostics.Process对象,我认为我需要确定内存状态。 我发现了如何从ServiceController映射到原始映像名称,但是我监视的许多服务都是从同一映像启动的,因此这不足以确定进程。 有谁知道如何从给定的ServiceController获取Process对象? 也许通过确定服务的PID? 或者有没有人有这个问题的另一种解决方法? 非常感谢,Alex

如何在不创建安装程序的情况下安装C#Windows服务?

有没有人知道是否有办法安装在C#中创建的Windows服务而无需安装程序?

使用从属服务重新启动服务?

从csharp示例开始并正式注意相关的SO问题( 从C#重新启动Windows服务并且无法重新启动服务 )以及与重新启动一项服务相关的各种其他问题,我想知道重启服务的最佳方法是什么依赖服务 (例如, Message Queuing Triggers依赖的Message Queuing Triggers ,或者是FTP Publishing和World Wide Web Publishing依赖的IIS )。 mmc管理单元自动执行此操作,但代码似乎不提供相同的function(至少不那么容易)。 Stop的MSDN文档说“如果任何服务依赖于此服务进行操作,它们将在此服务停止之前停止.DependentServices属性包含依赖于此服务的服务集”,并且DependentServices返回一组服务。 假设StartService()和StopService()遵循示例中概述的约定和上面引用的约定(除了它们直接接受ServiceControllers和TimeSpans ),我开始: public static void RestartServiceWithDependents(ServiceController service, TimeSpan timeout) { ServiceController[] dependentServices = service.DependentServices; RestartService(service, timeout); // will stop dependent services, see note below* about timeout… foreach (ServiceController dependentService in dependentServices) { StartService(dependentService, timeout); } } 但是,如果服务依赖项是嵌套的(递归的)或循环的(如果可能的话……) – […]

添加安装程序说服务名称包含无效字符,为空或太长

我创建了一项服务,当我右键单击并按下创建安装程序时,我收到上述错误消息。 服务名称不会丢失且有效。 问题可能在于我的服务上有一个基类,有几个属性和一个空构造函数。 基本上看起来像这样: EmailService : MyService MyService : ServiceBase EmailService是一个部分类,构造函数调用InitializeComponent(); 在设计师,设置servicename。 我猜我已经为我的基类做了一些愚蠢的事情,它正在破坏它或使它混淆。 有任何想法吗?

是否可以记录谁启动或停止了Windows服务?

我有一些用C#编写的Windows服务。 当有人停止或启动服务时,我希望能够确定它是谁并记录该信息。 我尝试记录Environment.UserName但即使在我的本地计算机上,它也会评估为SYSTEM。 此外,目前这些服务正在Windows 2000服务器上运行。

installutil成功完成但未安装服务

我正在尝试安装Windows服务。 运行c:\ windows \ microsoft.net \ Framework64 \ v4.0.30319 \ InstallUtil.exe c:\ foo \ MyAssembly.exe 我收到一条消息,表明所有阶段(安装,提交)都已成功完成。 (我不会被提示输入服务凭据) 之后我在服务控制台中看不到该服务。 在安装日志中没什么用处。 该解决方案建立在64位盒子上,我试图在64位机器上安装该服务。 但是,我没有看到64位作为解决方案属性的选项。 我手动编辑所有csproj文件,为[platform]节点选择“x64”。 我可以运行视觉工作室服务没问题。 installer.cs [RunInstaller(true)] public partial class Installer : System.Configuration.Install.Installer { public Installer() { InitializeComponent(); } } 这是visual studio提供的默认安装程序。

最好使用Windows服务重复程序调用

我正在构建我的第一个Windows服务。 它是一个连接到邮箱并下载所有邮件并将其存储在本地驱动器上的组件。 我的问题是这些。 在c#windows服务中重复程序调用的最佳方法是什么。 我想用一个简单的计时器? 我在哪里开始和停止计时器? 它是在服务本身还是我的服务运行的程序? Windows服务中应包含哪些代码以用于以下function protected override void OnStart(string[] args) { //timer? // MyProgram mp = new MyProgram(); } 我应该只使用上面的新实例启动我的应用程序,还是应该包含更多内容? 正如我所说,这是我第一次使用Windows服务。 编辑: 感谢所有的答案。 当然有很多不同的方法可以做到这一点,但我发现对我来说最好的方法是作为解决方案的一个标记。 谢谢你的帮助!

Windows服务中线程内的计时器

我无法弄清楚如何以最好的方式解决这个问题。 现在我有一个Windows服务,其唯一任务是从具有特定DSN的数据库中收集数据,然后在数据有效时发送电子邮件。 该服务包含一个计时器,每5分钟计时一次,并执行上述任务。 现在我需要重新编写Windows服务才能在1个以上的DSN上运行。 我想在windows服务中创建几个线程,然后在每个线程内再次有一个seperat计时器。 这是一个好主意,如何做到这一点? 我想避免为每个DSN提供Windows服务。 如果我没有任何意义,我会尝试绘制它 Windows Service 线程1(DSN1)—————————–线程2(DSN2)————- ——— Thread3(DSN3) 定时器(每X分钟刻度)—————–定时器(相同)———————- —定时器(相同) 逻辑()———————————————逻辑电 – – – – – – – – – – – – – – – – 逻辑() 希望我的问题有道理:)

是否可以在C#中观察Rss饲料变化?

我想创建一个服务,该服务将收听少量Rss提要并将新提要解析为jSon以供进一步使用。 是否有可能观察到饲料变化,如果是,那么如何? 谢谢