将一个PHP脚本设置为Windows服务
我需要将PHP脚本设置为Windows服务. 我都需要运行它,无论登录哪个用户,并且在系统启动时都需要运行 - 因此,听起来像是Windows服务最好,但是很高兴听到其他建议. (此脚本连续运行,这不是我可以使用计划的任务管理器的"每5分钟运行"的东西.) http://support.microsoft.com/kb/kb/251192 使用SC使用SC. EXE程序安装您的服务. 但是,从我阅读的内容中,我需要在PHP脚本周围包装包装器,以接受Windows Service Manager的特殊命令.谁能帮忙吗? 解决方案 也许 2008.2.2.2.2.2.2.2.2affe 应帮助您设置任何可执行文件作为服务的. (我已经在Windows 2003服务器,Windows 2008服务器和Windows XP Professional [其他资源套件]上成功使用了此 ) 您将创建一个包含php your-script.php的蝙蝠,将其用sr
2 2023-05-26
编程技术问答社区
一个服务需要哪些用户权限来启动/停止其他服务?
我已经写了一项应该开始/停止其他服务的服务. 这是我正在使用的代码: ServiceController sc = new ServiceController("servicename"); if(sc.Status != ServiceControllerStatus.Running) { sc.Start(); } 这是例外的呼叫堆. (抱歉,但该消息本地化为德语,但这与理解我的问题无关) System.InvalidOperationException: Der Dienst SCardSvr kann nicht auf dem 计算机. GeöffnetWerden. ---> system.componentmodel.win32 exception: Zugriff Verweigert --- ende der intuntausnahmestapelüberwachung--- Bei System.ServiceProcess.Serv
2 2023-05-25
编程技术问答社区
命名的管道客户端无法连接到作为网络服务运行的服务器
我有一个在网络服务帐户下运行的服务.该服务刚刚设置了一个命名管道并聆听连接: NamedPipeServerStream listeningPipe = new NamedPipeServerStream("ourservicepipe", PipeDirection.InOut, NamedPipeServerStream.MaxAllowedServerInstances, PipeTransmissionMode.Message, PipeOptions.Asynchronous); listeningPipe.BeginWaitForConnection(OnPipeConnected, listeningPipe); 我有一个在同一台计算机上的标准用户帐户上运行的应用程序.它试图连接到服务创建的命名管: NamedPipeClientStream pipe = new NamedPipeClientStream(".", "ourservice
0 2023-05-25
编程技术问答社区
在ASP.NET/C#中以正确的权限启动一个服务
在我的网站上(用asp.net/c#编写),我希望主持人能够启动某个服务.我对此的代码是: ServiceController svcController = new ServiceController("InvidualFileConversion"); if (svcController != null) { try { svcController.Stop(); svcController.WaitForStatus(ServiceControllerStatus.Stopped, TimeSpan.FromSeconds(10)); svcController.Start(); } catch (Exception ex) { // error } }
0 2023-05-25
编程技术问答社区
我如何在代码中配置我的windows服务以访问桌面?
我创建了一个Windows服务.我想从此服务打开一些基于Windows的应用程序. 但是我的Windows服务无法启动桌面应用程序.要启用访问权限,我必须执行以下步骤: 打开管理工具"服务" 右键单击我的服务,必须选择"属性" 然后在"登录"选项卡中,选择"允许服务与桌面交互". 之后,我的服务可以打开所需的基于Windows的进程. 我可以在代码(C#)中配置Windows服务以访问桌面,以便我不必在安装后手动更改访问权限? 解决方案 in .NET您可以覆盖服务安装程序类的OnCommited以配置服务以访问桌面.代码将如下: [RunInstaller(true)] public partial class ProjectInstaller : Installer { private ServiceProcessInstaller serviceProcessInstaller; private ServiceIns
0 2023-05-25
编程技术问答社区
检查另一个进程中的环境变量?
在Windows中,是否有一种方法可以检查是否存在另一个过程的环境变量?只需要检查存在,而不一定要获得价值. 我需要从代码中执行此操作. 解决方案 如果您知道存储环境的虚拟地址,则可以使用 OpenProcess 和 ReadProcessMemory 从另一个过程中读取环境.但是,要查找虚拟地址,您需要在线程信息块该过程的线程之一. 要做到这一点,您需要致电 GetThreadContext() 致电 SuspendThread() SuspendThread() .但是,为了打电话,您需要一个线程句柄,您可以通过调用其他解决方案 这是一个工作示例,可以使用打印的输出来检查存在和读取值(将其构建为与可执行的过程标识符相同的架构): getenv.cpp #include #include #include #include #include us
2 2023-05-25
编程技术问答社区
从Windows服务访问环境变量
我试图在C#中编写Windows服务.我需要找到某个文件的路径,该文件存储在环境变量中.在常规C#控制台应用程序中,我可以通过以下行实现: string t = System.Environment.GetEnvironmentVariable("TIP_HOME"); 如果我将其写给控制台,我会发现它成功了. 现在,如果我在Windows服务中尝试相同的代码,则字符串t为空. 任何想法为什么? 解决方案 我不知道这是否有用,但是我发现每项服务都有一个可以将环境变量直接添加到服务的选项. 它是通过注册表完成的. 说您服务的关键是... hklm \ system \ currentControlset \ services \ yourservice 创建一个称为环境的reg_multi_sz. 现在您可以添加... 之类的条目 Var1=Value1 Var2=Value2 ,这些将可用于服务代码. 如果您使用的
2 2023-05-25
编程技术问答社区
作为域账户运行Windows服务所需的最低权限
有人知道我需要授予域用户帐户的最低权利才能以该用户的身份运行Windows服务吗? 为简单起见,假设该服务无能为力,超过启动,停止和写入"应用程序"事件日志 - 即没有网络访问,没有自定义事件日志等. . 我知道我可以使用内置的服务和网络服务帐户,但是由于网络策略的到位,我可能无法使用这些帐户. 解决方案 两种方式: 编辑服务的属性,并在用户上设置日志.适当的权利将自动分配. 手动设置它:转到管理工具 - >本地安全策略 - >本地策略 - >用户权利分配.编辑项目"登录为服务",然后在此处添加您的域用户. 其他解决方案 我确实知道该帐户需要具有"登录为服务"特权.除此之外,我不确定.可以找到登录作为服务的快速引用 there 是很多特定特权的信息其他解决方案 " bypasstraversechecking''意味着即使您没有对目录中的目录,即在其上方的所有目录中,都可以直接访问任何深层子目录.
0 2023-05-25
编程技术问答社区
如何停止Win32服务始于Win32 ::守护程序?
我能够使用Follwing脚本在Windows 10(草莓Perl版本5.30.1)上成功启动Win32服务: package Win32::XYZService; use feature qw(say); use strict; use warnings; use File::Spec; use Win32; use Win32::Daemon; { die "Bad arguments" if @ARGV != 1; my $action = shift @ARGV; my $xyz = Win32::XYZService->new(); $xyz->action( $action ); } sub new { my ( $class, %args ) = @_; $args{name} = 'xyz_service2'; my ($bin, $scriptname) = Win32::GetFullPathName
2 2023-05-24
编程技术问答社区
Windows服务启动时间
有没有一种方法可以编程地检索Windows XP中启动期间开始的所有Windows服务的启动时间/持续时间? 也就是说,该服务的初始时间到达"开始"状态. 预先感谢您! P.S.我不是在要求软件推荐. 解决方案 我将从事件查看器中查看日志开始,检查您想要的信息是否存在. 如果是,请使用Microsofts EventLog类获取所需的日志. 例如,如果您对系统日志感兴趣 - EventLog systemLog = new EventLog("System"); SystemLog包含系统日志中所有条目的集合.从那里很容易.
14 2023-05-24
编程技术问答社区
监视单个窗口服务的性能
我有7个Windows服务.我想监视单个服务的性能,例如处理器使用,内存使用等. 如果我使用perfmon,它将提供整个系统,但不能提供单个服务.谁能建议我如何监视单个服务的性能? 解决方案 perfmon可以监视单个过程!只需在"添加计数器/性能对象"组合中选择过程.对于"快速"监视,我发现Sysinternals(现在是Microsoft)流程Explorer轻松又不错.某些服务为您提供了可以通过MRTG或CACTI等工具显示的性能信息(插座/文件等). . 其他解决方案 要检查单个服务的内存,您将必须将服务类型更改为"自己的过程". $win32Service = Get-CimInstance -ClassName Win32_Service -Filter "Name = '$ServiceName'" -Verbose:$false if ($win32Service) { if (!(Set-ServiceTypeToOwnProcessByCim $w
10 2023-05-23
编程技术问答社区
当系统启动/重新启动时,WMI调用需要太多的时间
我想获得Windows服务的路径, var managementObjectSearcher = new ManagementObjectSearcher("Select * from Win32_Service where serviceName = MyService"); 此代码是其他服务的构造函数写的... 系统启动和运行时一切正常,但是如果我重新启动系统,则将系统放置此调用的秒表类,它表明该服务需要35-45秒才能开始. > 提高系统性能的任何建议... 解决方案 不存在Windows32_Services类,因此假设您使用的是 Win32_Service WMI类您可以改善性能,只能返回要使用的属性,在这种情况下,请更改您WQL句子 SELECT PathName FROM Win32_Service Where Name='MyService' 更新 对 @bacon 进行的观察是非常正确的构建win32_service的对象路径,
0 2023-05-23
编程技术问答社区
IIS启动问题 "Process W3SVC can't be started on this computer . "-无法删除Windows组件?
我有一些奇怪的行为,试图开始我的IIS10. 关于服务的信息: w3c protokollierungsdienst->跑步,一段时间后停止 www PublishingService->无法启动(请参阅屏幕截图) 无法启动(请参阅屏幕截图) 在IIS上,如果我尝试启动它,我会收到以下错误: iisstartingscreenshot 我试图卸载Windows功能面板上的所有相关IIS组件. 卸载它,重新安排了系统,检查了Windows功能和组件面板,所有软件包仍安装 所以这是我的问题,我的茎似乎并没有真正删除IIS或服务组件. 更新 所以我从2018年8月开始安装了补丁. 但是什么都没有改变 - 我手动安装了KB4343909-但它并未解决我的问题. 我还尝试了线程中的一些补丁程序( @lex li的链接),但我也没有帮助. 我还能尝试什么?我真的很坚持这个,必须完成我的项目... 我真的必须在七月之前回滚所有更新吗?我认为是时候到了Linu
6 2023-05-22
编程技术问答社区
从windows服务打印pdf
使用C#,如何将PDF文档(背景中没有任何对话框)打印到指示的打印机? 解决方案 我过去曾使用以下PDF库来从C#Windows服务执行PDF文档的批处理打印. 这是一个相当不错的库,如果我没记错的话,只需几行代码即可打印文档.它效果很好,为我节省了很多时间. 此外,推荐的链接讨论了使用DDE在服务器上启动桌面应用程序执行打印的链接是一个坏主意. Adobe Reader可能不支持此功能,并且由于它是在无窗会话中运行的桌面应用程序,因此您可能会遇到消息框和对话框的问题.该解决方案只是我的拙见并没有扩展. 其他解决方案 在这里我们在这里去 其他解决方案 免责声明:我为Atalasoft工作 如果您不想依赖于服务器上的Acrobat,则需要自己对PDF页面进行栅格化,并使用普通.NET打印API将其发送到打印机.我们有一种产品可以 rasterize pdf 使用下面的狐狸发动机.它以正常的.NET组件部署,不需要安装任何其他软件.
2 2023-05-22
编程技术问答社区
c#服务:如何获得用户配置文件文件夹路径
我需要从C#Windows服务中获取用户目录... ...像c:\ users \ myusername \ 理想情况下,我想走漫游的道路... ...像c:\ users \ myusername \ appdata \ roaming \ 当我在控制台程序中使用以下内容时,我获得了正确的用户目录... System.Environment.GetEnvironmentVariable("USERPROFILE"); ...但是当我在服务中使用相同的变量时,我会得到... C:\ Windows \ System32 \ Config \ SystemProfile 如何从服务中获取用户文件夹,甚至可能是从服务中获取漫游的文件夹位置? 预先感谢. 解决方案 除非将服务配置为使用特定用户的配置文件,否则服务不会像用户那样登录.因此,它不会指向"用户"文件夹. 其他解决方案 我已经搜索了从Windows服务获取用户的配置文件路径.我发现了这个问题,
0 2023-05-21
编程技术问答社区
在.net中如何在另一台电脑上运行一个进程?
假设我有一个名为" MyService"的Windows服务,并且位于网络上的多台计算机上的可执行文件称为" Myexe". 是否有可能(从" MyService"中)在另一台/同一计算机上启动" myexe"的几个实例,是否执行某些任务并将true/false结果返回到" myService"中的回调方法?/p> 类似这样的东西 class MyService : ServiceBase { delegate void UpdateCallBack(int id, bool updated) void CheckForUpdates() { bool updatesExist = someService.GetCurrentVersion() != currentVersion; if(updatesExist) { UpdatePC("C:\Program Files\MyA
0 2023-05-19
编程技术问答社区
运行异步代码的Windows服务没有等待工作的完成
简短 我有一个Windows服务,可以并行执行几个作业作为异步任务.但是,当称呼脚踩时,似乎这些都是立即终止的,而不是被允许以更亲切的方式停止. 更详细地 每个作业都代表着工作的迭代,因此完成工作后需要再次运行. 为了实现这一目标,我正在编写概念验证Windows服务: 作为等待的异步TPL任务运行每个作业(这些都是I/O绑定任务) 每个作业都在循环中迭代运行 每个作业的循环在并行运行 运行服务时,我会看到一切都按照我的期望执行.但是,当我停止服务时,似乎一切都停止了. 好的 - 那么该如何工作? 在服务中,我有一个取消令牌和一个任务完成来源: private static CancellationTokenSource _cancelSource = new CancellationTokenSource(); private TaskCompletionSource _jobCompletion = new Tas
如何将Electron应用程序和Windows服务捆绑在一起?
我对电子应用非常新.我需要选举安装的帮助. 我有一个电子桌面应用程序和 Windows Service . 我可以使用sudo-prompt软件包启动和停止我的预安装服务. 我正在使用electron-winstaller软件包来创建 Windows安装程序. 但是我想将我的 Windows Service 与我的 Electron应用程序捆绑在一起.我的要求是,当我安装电子包时,它也应该安装我的服务,当我卸载包装时,该服务应卸载. 请帮助我.任何线索,任何建议都将不胜感激. 如果您认为应该与其他事情实现这一目标,请建议我. 解决方案 电子的Windows安装程序包装器为我打动了一个特定的案例工具,该工具可能会在这种情况下达到限制.我将使用一个通用案例工具,例如免费和开源的窗口安装程序XML工具集(aka Wix).我还将与另一个称为工业强度Windows安装程序xml aka iswix的FOSS应用程序一起使用. Wix允许您使用XML/XSD域特定语言来描述和构
如何从VS 2022创建的gRPC服务器创建Windows服务?
我通过选择" ASP Net Core GRPC服务"模板和.NET 6 Core来创建Visual Studio 2022社区预览中的GRPC服务器.我打算替换所有使用WCF的现有的.NET框架Windows服务.因此,我不是在寻找有关如何创建Windows服务的替代方案. 从VS 2022生成的代码创建一个program.cs(sans注释),看起来像: var builder = WebApplication.CreateBuilder(args); builder.Services.AddGrpc(); var app = builder.Build(); app.MapGrpcService(); app.MapGet("/", () => "Communication with gRPC endpoints must be made through a gRPC client. To learn how to create a cl
6 2023-05-15
编程技术问答社区
使用OWIN将Web API托管为Windows服务
我正在尝试使用OWIN作为Windows服务运行Web API应用程序.但是,在尝试启动服务时,我会收到以下消息: 本地计算机上的[ServiceName]服务开始,然后停止.某些服务会自动停止如果其他服务或程序不使用. 由于某种原因,我的服务不明白它应该继续听 http://localhost:9000 P> VS解决方案由两个项目组成:Web API和Windows服务. 在Windows服务项目中,我有: static class Program { static void Main() { ServiceBase[] ServicesToRun; ServicesToRun = new ServiceBase[] { new Service() }; ServiceBase.Run(ServicesToRun); } }
0 2023-05-15
编程技术问答社区