Tag: 服务

将现有服务设置为“自动(延迟启动)”

我正在尝试将已安装的 Windows服务设置为C#中的自动延迟启动。 如何设置Windows服务 Automatic (Delayed Start) 无法在ServiceStartMode枚举中找到该值。 编辑:1 public class ServiceAutoStartInfo { [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)] private struct SERVICE_DELAYED_AUTO_START_INFO { public bool fDelayedAutostart; } [DllImport(“advapi32.dll”, SetLastError = true, CharSet = CharSet.Auto)] [return: MarshalAs(UnmanagedType.Bool)] private static extern bool ChangeServiceConfig2(IntPtr hService, int dwInfoLevel, IntPtr lpInfo); // Service configuration parameter const int SERVICE_CONFIG_DELAYED_AUTO_START_INFO = 3; public bool ChangeDelayedAutoStart(IntPtr […]

entity frameworkTimeSpan – 时间错误

我正在使用EF 5和c#。 在我的主项目中,我使用CodeFirst来创建我的数据库。 我有这个实体: public class Shift { public string Name { get; set; } public TimeSpan StartTime { get; set; } public TimeSpan EndTime { get; set; } } TimeSpan属性创建为time(7),而不是数据库中的null。 在我的MainProject everthing工作正常。 但是当在同一个解决方案中从Windows服务项目(我使用Mainproject中的相同Context和Models)访问数据库时,我收到此错误: 这一行(在Mainproject中多次使用): context.Shifts.Load(); 结果是 There is no store type corresponding to the conceptual side type ‘Edm.Time(Nullable=True,DefaultValue=,Precision=)’ of primitive type ‘Time’. 这个问题的原因是什么? //编辑 […]

以编程方式在远程计算机上安装Windows服务

与https://stackoverflow.com/a/467565/774828类似,它显示了如何在远程计算机上启动和停止现有Windows服务,我正在尝试在远程计算机上安装Windows服务。 我可以启动和停止远程机器上的服务,但是我无法找到如何远程安装新服务,而无需调用sc.exe进程( https://stackoverflow.com/a/1159059/774828 )如果可能的话我想避免。 我知道有一个System.Configuration.Install.ManagedInstallerClass.InstallHelper方法,但我不能让它在远程机器上安装。 而且,我无法弄清楚我是否可以使用System.ServiceProcess.ServiceInstaller或System.ServiceProcess.ServiceProcessInstaller。

查询是否禁用了Windows服务(不使用注册表)?

是否有.NET(C#)方法或API调用,我可以用来查询Windows服务是否被禁用? 相关的MSDN文章在这里 。 我想避免直接查询注册表。 下面是我现在正在使用的一些代码(并且它可以工作)。 然而,我正在寻找更优雅,更少侵入性的东西。 const String basepathStr = @”System\CurrentControlSet\services\”; String subKeyStr = basepathStr + servicenameStr; using (RegistryKey key = Registry.LocalMachine.OpenSubKey(subKeyStr)) { return (int) key.GetValue(“Start”); } 我确实找到了一个简短的问题,但我希望得到一个更好的答案,因为答案可能已经过时(3年过去了)。

投票服务 – C#

有人能帮助我吗? 我正在创建一个连接到SQL数据库的Windows服务,并检查表中的日期并将其与今天的日期进行比较,并更新该数据库中的字段,例如,如果日期等于今天的日期,则该字段将设置为true 。 我遇到的问题是,当我启动服务时,它不会这样做但是当我以正常forms执行它时它完美地工作。 我的代码如下: //System.Timers Timer timer = new Timer(); protected override void OnStart(string[] args) { timer.Elapsed += new ElapsedEventHandler(OnElapsedTime); timer.Interval = 60000; timer.Enabled = true; } private void OnElapsedTime(object source, ElapsedEventArgs e) { int campid = 0; var campRes = new ROS.Process.CampaignServiceController().GetCampainInfo(); foreach (var s in campRes) { campid = s.CampaignId; if (s.CampEndDate.Date […]

C#/ .NET:检测程序是作为服务还是作为控制台应用程序运行

我有一个C#/ .NET程序,可以作为控制台应用程序和服务运行。 目前我给它一个命令行选项来启动作为控制台应用程序,但我想避免这种情况。 是否有可能以编程方式检测我的程序是否作为服务启动? 如果它是纯Win32,我可以尝试使用StartServiceCtrlDispatcher作为服务启动并返回到控制台,如果它返回ERROR_FAILED_SERVICE_CONTROLLER_CONNECT,但System.ServiceProcess.ServiceBase.Run()弹出errordialog如果它失败然后只返回没有发出错误信号到该计划。 有任何想法吗?

如何在WCF服务和主机应用程序之间进行通信?

我通过本教程创建了一个WCF服务。 这很好用,没问题。 现在我在托管应用程序中托管服务。 但与此同时,我希望将客户端的输入用于主机应用程序中的服务。 我不需要客户端和服务之间的双工通信。 我只需要服务和主机通信之间的通信。 处理这个问题的最佳方法是什么?

如何获取WCF服务正在侦听的端口?

我有一个net.tcp WCF服务,我希望操作系统选择它应该监听的端口。 所以我在我的URI中将端口设置为0, netstat确认操作系统已经选择了5000范围内的端口。 如何在服务流程中找到代码中已选择的实际端口? 一些代码显示我尝试过的内容: Type serviceType = …; Uri address = new Uri(“net.tcp://0.0.0.0:0/Service/”); ServiceHost serviceHost = new ServiceHost(serviceType, address); ServiceEndpoint endPoint = serviceHost.AddServiceEndpoint(type, binding, “”); int port1 = endPoint.ListenUri.Port; // returns 0 int port2 = serviceHost.BaseAddresses.First().Port; // also returns 0

以编程方式限制在服务内运行的线程的CPU使用率

我正在使用VB9(VS2008)。 我已经创建了一个定期为某些文件夹编制索引的Windows服务。 有没有办法可以根据当前系统状态对CPU使用率设置上限,即,如果系统处于空闲状态,则线程可以根据需要使用CPU,但是如果有其他程序/进程正在运行那么它应该以不会使系统变慢的方式使用CPU。

如何在同一时间每天一次在c#服务中执行代码?

所以这就是我的问题,我需要在每天凌晨3点在ftp上获取文件的服务器上运行ac#service。 我认为我可以使用thread.sleep()或者将DateTime.Now与凌晨3点进行比较…. 你有更好的解决方案吗? 非常感谢您的帮助!