Windows服务监控程序监控网站的实现

几年前给某医院做的网站,最近由于该医院要应付检查,所以把该网站要拿出来show一下,因为很多资料文件都在上面,网站资料文件加上网站本身大小10G左右,但奇怪的是,该网站做成windows服务后,windows服务每隔几个小时就会停掉(因为发布的服务器更换过,更换之前的服务端不会出现当掉的情况),也不知道是何故,只能临时想到一个折中的解决办法,应付检查过去再说!

  1. 利用Delphi编写一段小程序,每隔30s监控网站服务是否启动着,如果没启动着,则启动它
  2. 相关信息写入ini文件
启动windows服务代码段:

function StartService(AServName: string): Boolean; //use WinSvc
var
SCManager, hService: SC_HANDLE;
lpServiceArgVectors: PChar;
begin
SCManager := OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS);
Result := SCManager <> 0;
if Result then
try
hService := OpenService(SCManager, PChar(AServName), SERVICE_ALL_ACCESS);
Result := hService <> 0;
if (hService = 0) and (GetLastError = ERROR_SERVICE_DOES_NOT_EXIST) then
Exception.Create('The specified service does not exist');
if hService <> 0 then
try
lpServiceArgVectors := nil;
Result := WinSvc.StartService(hService, 0, PChar(lpServiceArgVectors));
if not Result and (GetLastError = ERROR_SERVICE_ALREADY_RUNNING) then
Result := True;
finally
CloseServiceHandle(hService);
end;
finally
CloseServiceHandle(SCManager);
end;
end;
 界面程序如下图:



 
所有的代码在附件里,临时想到的应付检查的办法!

猜你喜欢

转载自cxlh.iteye.com/blog/810782