Tag: windows services

用.NET 4.5编写的Windows服务中的Console.Out和Console.Error争用条件错误

我已经在生产过程中遇到了一个奇怪的问题,Windows服务随机挂起,并希望对根本原因分析提供任何帮助。 该服务是用C#编写的,并部署到使用.NET 4.5的机器上(虽然我也能用.NET 4.5.1重现它)。 报告的错误是: Probable I/O race condition detected while copying memory. The I/O package is not thread safe by default. In multithreaded applications, a stream must be accessed in a thread-safe way, such as a thread-safe wrapper returned by TextReader’s or TextWriter’s Synchronized methods. This also applies to classes like StreamWriter and StreamReader. […]

以编程方式更改Windows服务用户

我需要以编程方式更改Windows服务的Logon用户。 我使用以下代码来做到这一点: string objPath = string.Format(“Win32_Service.Name='{0}'”, ServiceName); using (ManagementObject service = new ManagementObject(new ManagementPath(objPath))) { object[] wmiParams = new object[11]; if (PredefinedAccount) { wmiParams[6] = “LocalSystem”; wmiParams[7] = “”; } else { wmiParams[6] = ServiceUsername; // provided by user wmiParams[7] = ServicePassword; // provided by user } object invokeResult = service.InvokeMethod(“Change”, wmiParams); // handle invokeResult […]

C# – Windows服务安装程序没有注册服务

我正在尝试使用Windows服务的安装程序,并希望避免使用InstallUtil.exe。 安装程序似乎正常工作(可执行文件和dll位于正确的目录中),但该服务未显示在“计算机管理”下。 这是我到目前为止所做的: 服务类名称是默认值 – Service1。 在项目安装程序中,服务安装程序的ServiceName与类名称 – Service1匹配。 在“自定义操作”下,服务的主要输出已添加到“安装”,“提交”,“回滚”和“卸载”。 我使用http://support.microsoft.com/kb/816169作为参考。 有任何想法吗?

重建后是否需要重新安装Windows服务?

如果我在进行更改后重建Windows服务,是否可以复制并替换旧的程序集/ .exe文件以使这些更改运行或是否需要重新安装服务? 在安装新版本之前,我是否还必须首先卸载服务?

无法在InstallUtil工具的帮助下安装Windows服务

我使用VS 2012,因为安装项目已从中删除,我必须使用InstallUtil.exe。 我的Windows服务应用程序中没有projectInstaller类。 我在命令提示符下运行: installutil FilesMonitoringService.exe 我明白了: C:\ Program Files \ Microsoft Visual Studio 8 \ VC#> installutil“C:\ Program Files \ Mic rosoft Visual Studio 8 \ VC#\ CSharpProjects \ MyService \ MyService \ bin \ Release \ MyServ ice.exe”Microsoft(R) .NET Framework安装实用程序版本2.0.50727.42版权所有(c)Microsoft Corporation。 版权所有。 运行事务安装。 开始安装的安装阶段。 请参阅日志文件的内容以获取C:\ Program Files \ Microsoft Visual Studi 8 \ […]

从服务运行msiexec(本地系统帐户)

我们正在为我们的软件开发更新系统。 更新程序应作为服务在后台运行,并且当有可用更新时,请下载并安装它。 我们需要服务来安装更新,因为MSI需要提升才能运行,但我们的一些客户端将是受限用户。 MSI是WiX MSI,运行时进行重大升级。 问题是,从我们的服务运行时,更新似乎不起作用。 我可以看到msiexec运行,并且它成功返回,但它似乎没有对系统进行任何更改。 从我的用户帐户运行时,相同的命令按预期工作。 从本地系统服务运行msiexec有一些警告吗? 我们只是在做: string arguments = “/i /quiet /lv*x ” + pathToLogFile; System.Diagnostics.Process.Start(“msiexec.exe”, arguments);

Windows服务中的exception处理最佳实践?

我目前正在编写一个完全在后台运行的Windows服务,每天都会做一些事情。 我的想法是服务应该非常稳定,所以如果出现问题,它应该不会停止,但是第二天再次尝试,当然还要记录exception。 你能告诉我如何制作真正稳定的Windows服务的最佳实践吗? 我已经阅读了Scott Hanselman关于exception处理最佳实践的文章 ,他写道,只有少数情况下你应该吞下一个例外。 我认为Windows服务是少数情况之一,但我很乐意得到一些确认。

由于缺少不缺少的程序集引用,Visual Studio拒绝构建项目

我正在构建ac#windows服务并在我的项目中添加了几个程序集引用(我自己的其他项目)。 我在构建时遇到以下错误: “错误25找不到类型或命名空间名称’TestClass’(您是否缺少using指令或程序集引用?” 有趣的是,csproj文件中的引用路径是正确的,除此之外,引用项目中的类和名称空间(根据Visual Studio缺失)正被Intellisense接收甚至“转到定义”function正常。 此外,我在与我的新Windows服务完全相同的文件夹中有其他项目,他们拿起了程序集引用就好了。 所有引用的项目都包含在解决方案中。 我使用Visual Studio 2013 Update 3.实际上没有可以显示的代码可以提供更多信息,但是如果你想看到一些屏幕截图或其他东西,请告诉我。 到目前为止的尝试: 尝试重新启动VS并重新加载所有项目 尝试将路径添加到属性引用路径页面。 尝试了本指南中的所有步骤: https : //msdn.microsoft.com/en-us/library/ayds71se.aspx 更新当我在引用列表中选择一个“缺失”引用并转到属性时,没有定义路径。 然而,相对路径在csproj文件中是正确的。 混乱。 更新2删除所有引用,重新加载项目,然后为我做一个干净的修复。 显然,问题是由构建堆栈中未更新的所有dll引起的。

如何更新已安装的Windows服务?

我用C#编写了一个Windows服务。 我已经将它安装在我的机器上,它运行得很好。 当您安装服务时, exe会被复制到某处? 或者它指向我的bin文件夹? 这是让我知道,当我不时更新我的​​代码时,我是否必须卸载并重新安装我的服务才能更新它?

如何在系统空闲时运行.NET应用程序?

我用C#创建了一个.NET Windows应用程序。 我希望在系统空闲一段时间后执行此应用程序。 该应用程序是一个用户登录应用程序,即当系统空闲一段时间时,会出现一个登录页面,用户使用其用户名和密码登录。 然后只有用户可以继续使用该系统。 我怎样才能解决这个问题? 请帮忙,因为我是Windows应用程序的新手。 我想将应用程序作为Windows服务运行。 我设法在Windows服务启动时运行该应用程序。 但是,只有当系统在Windows服务中进入空闲状态时,如何才能触发应用程序运行? 我还需要在用户登录后再次启动计时器以再次检查空闲时间。 请提供一些代码示例。