Tag: windows services

如何使用Wix安装.NET Framework的可再发行组件包?

我有一个常规任务:在我的产品设置期间安装.NET Framework 3.5。 我做了以下事情: 我创建了一个自定义动作X. 自定义操作X通过Process.Start()启动可执行文件Y 可执行文件Y终止msiexec进程并运行.NET Framework安装程序包 这里出现了一些问题:.NET Framework安装程序说Windows Installer Service无法访问并要求终止所有其他安装! 我认为,它的原因是Process.Kill()方法终止进程不正确。 当我通过Kill()终止msiexec进程时,msiserver服务不可停止,但如果我通过单击取消按钮完成设置,则msiserver服务将变为STOPPABLE。 我该如何解决这个问题?

如何将Windows服务中的参数从安装程序传递到Program.cs中的Main函数?

我已成功将参数从Installutil传递到我的serviceinstaller但我似乎无法将这些参数传递给Main(string [args]函数。以下是我试图做到这一点….如果有更好的方法做我的我在做,请让我知道 protected override void OnAfterInstall(IDictionary savedState) { base.OnAfterInstall(savedState); string[] args = new string[2]; args[0] = Context.Parameters[“username”]; args[0] = Context.Parameters[“password”]; new ServiceController(this.dataLoaderServiceInstaller.ServiceName).Start(args); } 这是我的Program.cs static void Main(string[] args) { // create a writer and open the file TextWriter tw = new StreamWriter(@”c:\\bw\\date.txt”); // write a line of text to the file tw.WriteLine(args.Length); // close the […]

Windows服务+ Windows窗体应用程序。 一个数据库。 关于并发的建议

我有SQL Server数据库与文件的信息 – 我在谈论自定义属性。 这些是每个文件的类别和描述。 Windows窗体应用程序适用于用户。 但我还将创建一个Windows服务来跟踪文件的任何变化。 如果发生更改(重命名,移动,删除),则服务必须相应地更新同一数据库。 而且我认为它应该马上做,不要拖延。 现在这将是我第一次制作WS plus,这是我第一次处理并发(理论上我知道线程等等)。 所以: 首先,如果一个进程正在更新另一个进程可能同时使用的数据库,那么可以吗? 你需要首先处理这种情况吗? (可能是我们日常“用户生活”中的fx,我们无法在另一个进程使用时修改文件) 这两个想法共享一个数据源好吗? 如果是,那么如何处理并发? 我可以使用WCF来处理两者之间的消息,但是解决方案是否与WCF有关? 因为我也是第一次使用它:D。 任何帮助表示赞赏。 提前谢谢!

Windows服务的心跳活动

我有许多Windows服务(用C#4.0编写),它以不同的间隔连接到数据库并执行各种复杂的任务。 其中一些任务仅每天每隔X小时发生一次。 但是,服务器支持团队想知道Windows服务是否实际运行,因为任务之间可能存在很大的间隔。 他们希望每个Windows服务都有一个心跳。 每隔5分钟,Windows服务就会执行一些可由Microsoft System Center Operation Manager(SCOM)监视的操作。 当服务器支持团队依赖SCOM时,任何解决方案都必须由SCOM轻松监控。 实现这种function的最佳方法是什么? 我想过使用性能计数器并让SCOM监听这些,但不确定这是否是最佳使用perf计数器。 更新(完全忘记包括):当前每个服务都会向数据库写入此操作,但SCOM不擅长监视数据库记录并区分哪些服务正在执行哪些操作等。

C#:创建一个安装WPF应用程序(ClickOnce)和Windows服务的安装程序

我目前有一个包含2个项目的VS解决方案:WPF应用程序和Windows服务。 现在,我已经设法让ClickOnce在安装我的WPF应用程序时工作,但我也希望在此安装期间安装Windows服务(项目中的那个)。 我已经找到了如何以C#代码以编程方式启动Windows服务的方法,但有没有办法将其合并到我的ClickOnce安装中(因为我需要ClickOnce的自动更新等的好处)?

窗口服务中的全局处理exception

我有一个Windows服务作为服务器运行。 但是,服务器有时会立即停止由未处理的错误。 请帮我讲解如何处理全局exception。 谢谢。

停止multithreadingWindows服务

我在.Net 3.5中有一个multithreading的Windows服务,当创建多个线程时,我有一些麻烦来正确停止服务。 这项服务用于创建一个线程来完成所有工作,我只是将其更改为multithreading。 它工作正常,但是当服务停止时,如果正在执行多个线程,它将挂起服务直到所有线程都完成。 当服务启动时,我创建一个后台线程来处理主进程: protected override void OnStart(string[] args) { try { //Global variable that is checked by threads to learn if service was stopped DeliveryConstant.StopService = false; bool SetMaxThreadsResult = ThreadPool.SetMaxThreads(10, 10); ThreadStart st = new ThreadStart(StartThreadPool); workerThread = new Thread(st); workerThread.IsBackground = true; serviceStarted = true; workerThread.Start(); } catch (Exception ex) { […]

如果使用Debug dll,服务不会及时响应启动或控制请求

我试图在我的机器上部署一个Windows服务,但是当我试图启动它时,我得到了以下错误。 “Windows无法在本地计算机上启动’myService’。错误1053:服务未及时响应启动或控制请求。” 经过一些研究后,我发现我正在使用Debug选项来编写我的项目,当我将其更改为’Release’模式时,一切都很好并正常工作。 我无法弄清楚这种行为,所以我在网上搜索并发现了这个调试vs-release-in-net,但即便如此也无法解释为什么我的窗口服务很难启动,如果我使用调试模式的dll 如果有人能够解释它将有助于我了解这实际上是如何工作的感谢。

获取已安装服务的版本信息?

我想以编程方式检查是否安装了最新版本的Windows服务。 我有: var ctl = ServiceController.GetServices().Where(s => s.ServiceName == “MyService”).FirstOrDefault(); if (ctl != null) { // now what? } 我在ServiceController接口上看不到任何会告诉我版本号的内容。 我该怎么做?

静态对象是多个正在运行的应用程序中的同一对象吗?

如果你有一个Windows服务和一个使用相同静态对象的Windows窗体应用程序,它是否是两个应用程序中的同一个对象? 换句话说,如果我更新服务中的对象,它还会在表单应用程序中更新,如果它们同时运行吗?