如何调用windows service

如何调用windows service,第1张

写一个WINDOWS服务定期调用webservice中的方法。

1、先建一个WebService(ASPNET Web 服务应用程序

2、建这个WebService的虚拟目录

3、执行生成一个文件

{

C:\Program Files\Microsoft Visual Studio 8\VC>wsdl /language:C# /out:c:\myProxyClasscs >

sc create jsb binPath= "C:\windows\system32\notepadexe" start= auto

sc create 为固定命令 意思是创建

jsb 为自定义的服务名

binpath 为固定格式

=“你需要添加的服务应用程序绝对路径”

start= auto 开机自动启动此服务

注意事项,每个=号之前 一定不要有空格 =号后面一定要有空格

用C#创建Windows服务的步骤:

1创建Windows Service项目

从Visual C# 工程中选取 Windows 服务(Windows Service)选项,给工程一个新文件名,然后点击 确定。

2向服务中函数功能实现

OnStart函数在启动服务时执行,OnStop函数在停止服务时执行。在这里,当启动和停止服务时,向一个文本文件中写入一些文字信息,代码如下:

using System;

using SystemCollectionsGeneric;

using SystemComponentModel;

using SystemData;

using SystemDiagnostics;

using SystemIO;

using SystemLinq;

using SystemServiceProcess;

using SystemText;

using SystemThreadingTasks;

namespace MyService

{

public partial class Service1 : ServiceBase

{

public Service1()

{

InitializeComponent();

}

protected override void OnStart(string[] args)

{

FileStream fs = new FileStream(@"d:\xxtxt", FileModeOpenOrCreate, FileAccessWrite);

StreamWriter sw = new StreamWriter(fs);

swBaseStreamSeek(0, SeekOriginEnd);

swWriteLine("WindowsService: Service Started" + DateTimeNowToString() + "\n");

swFlush();

swClose();

fsClose();

}

//protected override void OnContinue()

//{

// baseOnContinue();

//}

//protected override void OnPause()

//{

// baseOnPause(); // father class method inherit

//}

//protected override void OnShutdown()

//{

// baseOnShutdown();

//}

protected override void OnStop()

{

FileStream fs = new FileStream(@"d:\xxtxt", FileModeOpenOrCreate, FileAccessWrite);

StreamWriter sw = new StreamWriter(fs);

swBaseStreamSeek(0, SeekOriginEnd);

swWriteLine("WindowsService: Service Stopped" + DateTimeNowToString() + "\n");

swFlush();

swClose();

fsClose();

}

}

}

4回到设计窗口点右键选择-添加安装程序 -生成serviceInstaller1和 serviceProcessInstaller1两个组件

把serviceInstaller1的属性ServiceName改写为你的服务程序名,并把启动模 式设置为AUTOMATIC

把serviceProcessInstaller1的属性account改写为 LocalSystem

5编译链接生成服务程序

通过从生成菜单中选择生成来生成项目。

6安装服务

用net framework工具INSTALLUTIL安装服务程序即可。

用项目的输出作为参数,从命令行运行 InstallUtilexe。在命令行中输入下列代码:

installutil yourprojectexe

Hint: a windows service must first be installed using installutilexe and then started with the serviceExplorer, windows Services Administrative tool or the NET START command

7卸载服务

用项目的输出作为参数,从命令行运行 InstallUtilexe。

installutil /u yourprojectexe

方法一:使用windows自带的命令sc\x0d\使用sccreate方法创建。\x0d\如:sccreateCaptureScreenbinpath=F:\zwmei-project\decklink-learning\OutputBitmap\Debug\OutputBitmapexetype=ownstart=autodisplayname=Screen_Capture\x0d\其中CaptureScreen为服务名,可以在系统服务中找到,(通过在命令行运行servicesmsc打开系统服务)。binpath为你的应用程序所在的路径。displayname为服务显示的名称,这个在注册表中可以找到,(通过在命令行中输入regedit打开注册表,在HKEY_LOCAL_MACHINE--SYSTEM--CurrentControlSet下找到你的服务显示名)\x0d\注意:在sc命令中,=号前面不能有空格,而=号后面必须有一个空格,切记。另外要以管理员的身份打开命令行。\x0d\这种方法不一定能成功,如果你的exe不符合服务的规范,可能会启动失败。下面我们讨论第二种方法\x0d\方法二:在第一种方法失败的情况下,我们可以使用instsrvexe和srvanyexe两个小工具为我们分忧解难\x0d\我们可以在官网下载instsrvexe和srvanyexe然后放到自己的文件夹中,可以将文件夹放入C盘。下面我们开始注册服务。\x0d\已管理员的身份运行命令行,首先进入工具所在的文件夹,如:c:\tools。\x0d\执行c:\toolsinstsrvexeServerNamesrvanyexe\x0d\这样我们就创建了一个名为ServerName的srvany的服务,那么我们自己的exe该放在哪呢。下面我们打开注册表\x0d\找到ServiceName这个服务,然后右键新建项,名称为Parameters。单击该项,然后在右边新建两个字符串值。第一个名为Application,值为:应用程序路径,如:c:\myAppexe。第二个名为AppDirectory,值为:应用程序所在目录,如:c:\。\x0d\接下来我们进入系统服务,找到ServiceName这个服务,双击进入它的属性。设置允许与桌面交互。然后启动服务。\x0d\至此我们完成了将exe注册为服务的过程。\x0d\下面我们分析一下:\x0d\instsrvexe可以创建和删除服务,然而如果没有srvanyexe的参与,创建的服务可能无法启动。那么srvanyexe做了些什么呢,启动服务后我们可以在任务管理器中找到我们的服务,然后右击服务,选择转到进程,(如果进程中没有任何项被选中,则点击下面的显示所有用户进程,然后重新选择转至进程),我们看到的是srvanyexe,而不是我们自己的exe。原来我们的exe成为了它的一个子项,由srvanyexe帮助启动。

在“文件”菜单上指向“新建”,然后选择“项目”。在“项目类型”窗格中,选择您要使用的编程语言。在“模板”窗格中,对 Visual Basic、Visual J# 或 Visual C# 项目选择“Windows 应用程序”,或者对 Visual C++ 项目选择“Windows 窗体应用程序 (NET)”。注意在“名称”框中,用可指示应用程序用途的唯一名称命名该项目。在“位置”框中,输入要将项目保存到的目录,或单击“浏览”按钮以定位目录。Windows 窗体设计器打开,显示所创建项目的 Form1。Visual Basic 注意使用 Visual Basic 2005 创建的所有可执行文件都包含与项目具有相同名称的命名空间。有关更多信息,请参见

以上就是关于如何调用windows service全部的内容,包括:如何调用windows service、如何在windows服务器上面创建定时任务、如何通过使用 Sc.exe 创建 Windows 服务等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10106803.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存