validationIIS或ISS网站的最佳方法是?

我们有一个内部IIS服务器,托pipe几个网站,redirect到外部托pipe的Web应用程序。 有时候人们会做重要的事情,如重新启动服务器,停止服务,拔掉电缆,你把它命名它发生….我想validation我们的内部IISnetworking服务器启动并运行每15分钟,如果不尝试重新启动服务并给我发一封电子邮件。

我写了这个PowerShell脚本,但不知道这是否是完成这个最好的方法?

################################################################### # Summary: Verify W3SVC service is running, send email if it's down ################################################################### ############################## # Get service status ############################## $serviceName = "W3SVC" $serverName = hostname $status = (Get-Service $serviceName).Status if ($status -ne "Running"){ sendMail "$serviceName" "$serverName" #sendmail is a function (not shown) Restart-Service $ServiceName }else{ # Service is running, do nothing; } 

但林不知道W3SVC是检查IIS7是最好的服务? 我需要检查WASIISADMIN吗? 有没有完成一切的东西?

我也考虑过检查这些主机的HTTP状态代码,但是即使这个网站已经closures,并且IIS启动了,我的返回代码也会回到200 。 这更像是一个头脑风暴的想法,有没有更好的“最佳实践”来完成这样的事情呢?

 $url = "http://intranet_site" $xHTTP = new-object -com msxml2.xmlhttp; $xHTTP.open("GET",$url,$false); $xHTTP.send(); $xHTTP.status # returns the status code if ($xHTTP.status -ne "200"){ sendMail "$serviceName" "$serverName" Restart-Service $ServiceName } 

这更像是一个头脑风暴的想法,有没有更好的“最佳实践”来完成这样的事情呢? 我想validation该网站已启动,redirect正在工作。

如果你想检查一个网站是否可用,最好的方法是请求一个网页并检查它的内容。 检查$xHTTP.responseText$xHTTP.responseXML以及第二个脚本中的状态码。 不过,您可能希望从其他主机运行此检查,否则,即使网站在主机上可用,数据包筛选器或连接问题也可能阻止访问。