C#重启IIS指定网站和指定应用程序池
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.IO;
using Microsoft.Web.Administration; namespace RecoveryWebSite
{
public class Program
{
const string AppPoolName = "POD";
const string WebSiteName = "POD";
const int SleepTime = * ;
static ServerManager sm; static void Main(string[] args)
{
Console.WriteLine("检测程序启动,当POD网站或其应用池停下后,会自动启动。");
sm = new ServerManager();
new Thread(RecoveryWebSite).Start();
} static void RecoveryWebSite()
{
while (true)
{
try
{
var pool = sm.ApplicationPools[AppPoolName];
if (pool != null && pool.State == ObjectState.Stopped)
{
WriteLog("检测到应用池" + AppPoolName + "停止服务");
WriteLog("正在启动应用池" + AppPoolName);
if (pool.Start() == ObjectState.Started)
{
WriteLog("成功启动应用池" + AppPoolName);
}
else
{
WriteLog("启动应用池" + AppPoolName + "失败. " + SleepTime / + "秒后重试启动");
}
} var site = sm.Sites[WebSiteName];
if (site != null && site.State == ObjectState.Stopped)
{
WriteLog("检测到网站" + WebSiteName + "停止服务");
WriteLog("正在启动网站" + WebSiteName);
if (site.Start() == ObjectState.Started)
{
WriteLog("成功启动网站" + WebSiteName);
}
else
{
WriteLog("启动网站" + WebSiteName + "失败. " + SleepTime / + "秒后重试启动");
}
}
}
catch (Exception ex)
{
WriteLog(ex.Message.ToString());
} GC.Collect();
Thread.Sleep(SleepTime);
}
} static void WriteLog(string msg)
{
var fPath = "c:\\RecoveryWebsiteLog.txt";
if (!File.Exists(fPath))
{
File.Create(fPath).Close();
} using (StreamWriter sw = new StreamWriter(fPath, true, Encoding.UTF8))
{
sw.WriteLine(string.Format("{0} , 时间{1}", msg, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")));
}
//GC.Collect();
}
}
}
Microsoft.Web.Administration命名空间,可以用nuget添加 .
C#重启IIS指定网站和指定应用程序池的更多相关文章
- 不重启IIS修改dotnet framework版本
因为公司现在存在.net站点和asp站点共同运行的情况,所以需要对IIS进行一些修改,运行环境Win2003+IIS6 一.起因 原来的老站是asp开发的,用的是.net 2.0运行环境; 新站是.n ...
- Python Locust对指定网站“一键压测”
[本文出自天外归云的博客园] 前篇 前篇:Python Locust性能测试框架实践 本篇 承上——归纳过程 在前篇的基础上,我们可以利用Locust性能测试框架编写python脚本对指定网站或者接口 ...
- Qt 打开指定网站/系统文件夹
本文转载自:http://blog.csdn.net/robertkun/article/details/7802977和http://hi.baidu.com/xyhouse/item/ccf ...
- 吴裕雄--天生自然python学习笔记:编写网络爬虫代码获取指定网站的图片
我们经常会在网上搜索井下载图片,然而一张一张地下载就太麻烦了,本案例 就是通过网络爬虫技术, 一次性下载该网站所有的图片并保存 . 网站图片下载并保存 将指定网站的 .jpg 和 .png 格式的图片 ...
- 解决ASP.NET使用IIS架设网站时“服务器应用程序不可用”的方法
服务器应用程序不可用您试图在此 Web 服务器上访问的 Web 应用程序当前不可用.请点击 Web 浏览器中的“刷新”按钮重试您的请求. 管理员注意事项: 详述此特定请求失败原因的错误消息可在 Web ...
- 批处理命令行CMD启动停止重启IIS的命令
原文:批处理命令行CMD启动停止重启IIS的命令 启动IIS: net start iisadmin (IIS的整个服务) net start w3svc (WWW网页WEB服务) ...
- IIS发布网站
IIS发布网站几个问题 1.部署步骤:http://jingyan.baidu.com/article/3065b3b6e5becdbecff8a4d5.html Win7下IIS报503Servic ...
- IIS管理网站浏览
7.“/”应用程序中的服务器错误. 分析器错误 说明: 在分析向此请求提供服务所需资源时出错.请检查下列特定分析错误详细信息并适当地修改源文件.分析器错误消息: 文件“/Default.aspx.cs ...
- 301跳转:IIS服务器网站整站301永久重定向设置方法(阿里云)
欢迎来到重庆SEO俱乐部:搜索引擎优化学习交流QQ群224306761. 承接:seo优化.网站建设.论坛搭建.博客制作.全网营销 博主可接:百度百家.今日头条.一点资讯等软文发布,有需要请联系PE! ...
随机推荐
- 如何用phantomjs去抓取js渲染后的页面
1.安装phantomjs 网上有很多. 2.执行官网上的示例代码 // Read the Phantom webpage '#intro' element text using jQuery and ...
- 学习php一个星期
学习这事都是被逼出来的,总监让我做一个邮箱系统,目测可以.
- selenium 等待页面加载完成
一.隐形加载等待: file:///C:/Users/leixiaoj/Desktop/test.html 该页面负责创建一个div <html> <head> <tit ...
- 如何提高账户密码存储的安全性——PasswordSalt的使用
使用 Salt + Hash 将密码加密后再存储进数据库 如果你需要保存密码(比如网站用户的密码),你要考虑如何保护这些密码数据,象下面那样直接将密码写入数据库中是极不安全的,因为任何可以打开数据库的 ...
- myeclipse竖行删除
1.Alt + shift + a
- juery学习总结——例子
1.select元素在选择是找到选择的值和option中的值 <!DOCTYPE html> <html> <head lang="en"> & ...
- .Net Core 杂记
在学习.net core的路上,遇到很多坑,慢慢了解了.net core设计理念和设计思想(纯属跟人理解). 再此整理了之前写的一些学习笔记,后续也会把新的学习新的加上. 1..net core 跨平 ...
- Hive metastore三种配置方式
http://blog.csdn.net/reesun/article/details/8556078 Hive的meta数据支持以下三种存储方式,其中两种属于本地存储,一种为远端存储.远端存储比较适 ...
- sql注入时易被忽略的语法技巧以及二次注入
那些容易被忽略.容易被弄错的地方 sql注入时的技巧 ========================================================================= ...
- 如何配置IIS处理多并发请求及存在的问题
很多时候多线程能快速高效独立的计算数据,应用比较多. 但今天遇到的多进程下的问题更是让人觉得复杂 多进程下static变量都要失效,就目前的平台和产品static使用是很多的,各种session.ca ...