windows-services 相关问题

Windows服务是由基于Windows NT的操作系统上的服务控制管理器运行的后台服务进程,类似于守护程序或UNIX服务。

如何确保我的服务始终启动并运行

I在Windows中创建了一个服务,并在注册表中设置了Enteries,以便该服务自动从登录开始。 现在的问题是,在任务管理器 - >服务字段中,我服务的状态是

回答 2 投票 0

使用https

I从模板中创建了VS 2022的标准爆炸Web组件。 它需要使用HTTPS在Windows服务中运行。所有源代码都位于 这里: https://github.com/dgxhubbard/blazorservi...

回答 2 投票 0





回答 0 投票 0

系统错误5启动.NET Service

当我尝试启动我在Visual Studio中创建的服务时,我会收到以下错误: 系统错误5发生了。 访问被拒绝。 我正在以高架特权运行命令行,所以...

回答 7 投票 0

不可能使用C#

我正在尝试使用.NET和C#创建Windows服务,该服务跟踪用户的活动并衡量用户在计算机上花费的时间。我需要知道他何时登录,锁定设备,将设备放在睡眠等。然后,服务根据操作打开/关闭计时器,并将周期保存到数据库中。

回答 0 投票 0



C#.NET 8-如果EXE只是双击,如何显示警告?只希望它作为服务

IN.NET框架4.6.2,如果我双击注册为Windows服务的EXE,我会看到此消息: 伟大的!防止坏事发生。 现在我在.NET 8上,我写了一个窗口

回答 1 投票 0



运行批处理文件作为Windows服务

为了运行一个应用程序,必须启动一个批处理文件(诸如“启动码头”,“显示实时日志”之类的事情)。仅当此批处理文件运行时,该应用程序才能工作。我是H ...

回答 7 投票 0

如何使用 Serilog 获取应用程序洞察?

我没有看到任何日志记录进入我的应用程序洞察实例。 我有一个带有旧版本 .net core 的 Windows 服务。 我添加了这两个库: dotnet 添加包 Microsoft。

回答 1 投票 0

检查另一个进程中的环境变量?

在Windows中,有没有办法检查另一个进程的环境变量是否存在? 只需要检查是否存在,不一定能获取价值。 我需要从代码中执行此操作。

回答 3 投票 0

即使将 jenkins 安装为 Windows 服务后,我也必须通过命令行启动它,然后才能通过浏览器访问它

我已经安装了 jenkins 作为 Windows 服务,但是每次启动机器后我都必须使用 $ java -jar jenkins.war 通过命令行执行它 我无法直接打开它...

回答 3 投票 0

Windows 服务中的文件观察器

我是初学者,正在尝试开发一个 Windows 服务,该服务会不断检查文件夹(或文件夹组)中是否有任何新文件或更改的文件。一旦检测到任何新文件或更改(对文件或文件...

回答 4 投票 0

频道读取工作一段时间后失败

我有一个长期运行的类(不是BackgroundService),它有一个内部通道,我用它来缓冲传入的请求。 存在Enqueue方法,如下: 公共异步任务 我有一个长时间运行的类(不是BackgroundService),它有一个内部通道,我用它来缓冲传入的请求。 存在一个Enqueue方法,如下: public async Task<bool> Enqueue(IMessage message) { bool result; try { if (_cts.IsCancellationRequested) { _logger.LogInformation("{TypeName} cannot be enqueued because the queue is stopped.", message.GetType().Name); result = false; } else { await _messageChannel.Writer.WriteAsync(message); result = true; _logger.LogInformation("Message {TypeName} written to internal channel.", message.GetType().Name); } } catch (ChannelClosedException) { _logger.LogInformation("{TypeName} cannot be enqueued because the channel is closed.", message.GetType().Name); result = false; } catch (Exception e) { _logger.LogError(e, "Error enqueuing {TypeName}", message.GetType().Name); result = false; } return result; } 在类构造函数中,使用以下命令启动消息读取器循环: Task.Run(() => _MainMessageLoop(_cts.Token)); _MainMessageLoop 看起来像: private async Task _MainMessageLoop(CancellationToken stoppingToken) { try { var channelReader = _messageChannel.Reader; while (await channelReader.WaitToReadAsync(stoppingToken).ConfigureAwait(false)) { try { var item = await channelReader.ReadAsync(stoppingToken).ConfigureAwait(false); _logger.LogInformation("Message {TypeName} read from internal channel.", item.GetType().Name); await _DoSomethingAsync(item); } catch (Exception e) { _logger.LogError(e, "Error doing something"); } } _logger.LogInformation("Channel reader loop exited {MethodName}.", nameof(_MainMessageLoop)); } catch (OperationCanceledException) { _logger.LogDebug("OperationCanceled {MethodName}", nameof(_MainMessageLoop)); throw; } catch (Exception e) { _logger.LogError(e, "Error in {MethodName}", nameof(_MainMessageLoop)); throw; } } 这在一段时间内效果很好(几个小时,消息负载非常轻),然后就停止了。 根据日志,写入仍在发生,但读取端卡住了。 没有与读取失败、抛出异常等相关的日志消息。读取循环似乎停止了。 我尝试了有界/无界、TryRead与ReadAsync的几种组合,每种组合的结果大致相同。 写入仍在发生(这意味着该对象还活着并且运行良好),没有任何运气。大多数文档似乎都没有暗示这一点,但我认为我正在做一些不符合预期的事情,或者某个地方存在错误。我在应用程序中使用的其他通道工作正常,但它们是 HostedService 级别的单例。 有人遇到过类似的事情吗? 我的猜测如下,GC 清理了你的Task。在 _MainMessageLoop 内部初始等待之后,执行将返回到 Task.Run,这样 Task 就“结束”了,因为之后没有执行任何操作。如果没有人持有对从 Task 创建的 Task.Run 的引用,它最终将被 GC 清理。将 Task 存储为属性或字段,然后重试。在构造函数内部启动 Task 的想法是一个坏主意,特别是如果 Task 未存储在类内部,因为它可能会导致 UnobservedTaskException。

回答 1 投票 0

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.