意义:编写一个window service,独立于程序之外,定时的访问指定的连接,当连接可以访问的时候,说明网站连接是正常的,否则,网站挂了。挂了就邮件、短信提醒。
window service服务还可以监测所有访问的信息,例如ip什么的,可以做到访问的拦截。个人觉得黑名单ip应该是服务器做的,服务器没有再在程序里面写。
但是现实的需求是,客户的服务器是自己的,然后他们的服务器并没有什么安全而言,而他们原来的程序也是没有拦截这个功能点,然后这个就很尴尬了,需要我们帮他们做这个服务器的访问拦截。
操作:
编写服务:
- vs创建window service 服务程序。
- APP.config 是配置文件,可以在此处写程序参数,方便后期的修改
<div><appSettings> <!--网页链接--> <add key="webUrl" value="http://localhost:91/admin/main.aspx"/></div> <div> <!--存储黑名单文件路径--> <add key="blackPath" value="C:\ssmapMonitor\black"/> <!--黑名单文件名--> <add key="blackFileName" value="blackList"/> </appSettings></div>
- 启动程序是Program.cs,主程序是Service.cs(可以重命名)要修改服务的安装名可以右键service设计内service.cs,点击属性,修改name。
- 具体实现就看需求了
- 监听请求服务是使用
listener = new HttpListener();
listener.Start();
listener.Prefixes.Add("http://localhost:91/admin/"); // "/"结尾
HttpListenerContext context = listener.GetContext();
#region
这个地方你可以通过context获取你需要的访问信息,ip,请求地址等等
还可以做一些相对应的操作处理
#endregion
context.Response.Close();
listener.Stop();
调试服务:
- 安装服务
- 启动调试,找到相对应的安装服务,将程序附加到进程。
- 设断点可以调试(以上均为管理员身份打开vs)
安装服务:
- 以管理员身份打开命令行。
- 找到你InstallUtil.exe的路径(一般而言是在C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe) ,为了方便也可配置成系统环境变量。设为A
- 找到你的程序生成的路径(这个就因人而异了)。设为B
- 安装 命令行A B 就可。
- 卸载 命令行A /u B