如何创建WebApi的windows服务(测试记录全过程)
如何创建、安装WebApi的windows服务(测试记录全过程)
如何创建WebApi的windows服务(测试记录)
本文主要记录我开发webapi的windows服务的全过程,以做备忘。
1. 创建一个windows服务项目
本文以.net Framwork为基础,故我选择的如下图所示:
2. 配置config文件
为了支持http协议,需要在项目中App.config
的configuration
节点下增加如下配置:
<system.net>
<settings>
<httpWebRequest useUnsafeHeaderParsing="true" />
</settings>
</system.net>
3.添加相关引用
因为需要创建webapi,并进行监听配置,所以需要添加相关引用。
在引用
上右键,选择管理NuGet程序包
,然后搜索并安装,安装成功后会如下图所示:
4. 创建WebApi
(1)创建服务
-
windows服务项目创建之后会自动添加一个Service1服务,但我懒得删除或重命名,所以我直接使用这个服务,如小伙伴想重新创建自己的服务,可在项目上右键->添加->新建项,在弹出的窗体中选择
Windows服务
即可。这里不再详细说明。 -
在Service1的后台代码中创建并配置WebApi,具体代码如下:
public partial class Service1 : ServiceBase
{
private IDisposable webApp;
private string baseAddress;
public Service1()
{
InitializeComponent();
baseAddress = "http://localhost:8081/";
}
protected override void OnStart(string[] args)
{
webApp = WebApp.Start<Startup>(url: baseAddress);
}
protected override void OnStop()
{
webApp?.Dispose();
}
}
public class Startup
{
public void Configuration(IAppBuilder appBuilder)
{
HttpConfiguration config = new HttpConfiguration();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
appBuilder.UseWebApi(config);
}
}
(2)创建webapi的controller
建议在项目下创建一个Controller文件夹,将自己的Controller添加到文件夹下:
因为是做简单测试,所以我的DataControler下只有简单的几个API
[RoutePrefix("api/data")]
public class DataController:ApiController
{
[HttpGet]
public string[] GetData()
{
return new string[] { "xiaoming", "xiaoli", "xiaozhang" };
}
[HttpGet]
public string GetData(string description)
{
return "the description is " + description;
}
[HttpPost]
public int PostData(string content)
{
return content.Length;
}
}
(3)为服务添加Installer
双击Service1,打开设计器,右键->添加安装程序
会自动添加两个控件:serviceProcessInstaller1
、 serviceInstaller1
- 右键
serviceProcessInstaller1
选择属性,将Account
设置为LocalSystem
- 右键
serviceInstaller1
选择属性,设置Description
为测试服务、StartType
为Manual(可根据自己需要设置为Automatic)
(4)生成
右键项目->生成
5. 安装服务
我选择的安装程序是微软自己的InstallUtil.exe
1)以管理员身份运行cmd
cmd启动后执行命令:cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
切换到InstallUtil.exe
的程序目录(根据自己的路径进行修改命令)
2)安装服务
执行命令:InstallUtil.exe D:\WebAPITest\ApiService\bin\Debug\ApiService.exe
安装成功后有提示:
3)启动服务
执行命令:net start Service1
4)测试
浏览器输入http://localhost:8081/api/data
并访问,成功后会如下显示:
对于post请求,可使用调试软件ApiPost或者Postman,如何使用这里暂时不做介绍
5)停止、删除服务
对于不需要的服务可先将其停止,然后删除。命令如下net stop Service1
InstallUtil.exe /u D:\WebAPITest\ApiService\bin\Debug\ApiService.exe
或者sc delete Service
本文如有错误,还请指正
更多推荐
所有评论(0)