http 监听 避免IIS

#region http服务监听器
            HttpListener listener = new HttpListener();
            listener.Prefixes.Add("http://192.168.10.21:3000/Temp/");
            listener.Start();
            Console.WriteLine("开启监听");
            while (true)
            {
                HttpListenerContext context = listener.GetContext();
                Console.WriteLine("来了一个请求");
                new Thread((o) =>
                {
                    HttpListenerContext con = (HttpListenerContext)o;
                    string IP = con.Request.Headers.GetValues("IP")[0].ToString();
                    string GUID = con.Request.Headers.GetValues("GUID")[0].ToString();
                    string THRID = con.Request.Headers.GetValues("THRID")[0].ToString();
                    Console.WriteLine(string.Format("客户端:IP:{0}, 线程:{1}, GUID:{2}", IP, THRID, GUID));
                    HttpListenerContext request = (HttpListenerContext)con;
                    request.Response.StatusCode = 200;
                    request.Response.Headers.Add("Access-Control-Allow-Origin", "*");
                    request.Response.ContentType = "application/json";
                    con.Response.ContentEncoding = Encoding.UTF8;
                    byte[] buffer = Encoding.UTF8.GetBytes("我收到了" + DateTime.Now.ToString());
                    request.Response.ContentLength64 = buffer.Length;
                    var output = request.Response.OutputStream;
                    output.Write(buffer, 0, buffer.Length);
                    output.Close();
                    Console.WriteLine("处理完成");
                }).Start(context);
            }

            #endregion
 #region http请求 客户端

            for (int i = 1; i <= 10; i++)
            {
                new Thread((x) =>
                {
                    HttpHelper http = new HttpHelper();
                    HttpItem hi = new HttpItem();
                    hi.URL = "http://192.168.10.21:3000/Temp/";
                    hi.Method = "GET";
                    hi.Header.Add("IP:" + new Random().Next(100));
                    hi.Header.Add("GUID:" + Guid.NewGuid().ToString());
                    hi.Header.Add("THRID:" + Thread.CurrentThread.ManagedThreadId);
                    Console.WriteLine("第" + x + "次请求");
                    string html = http.GetHtml(hi).Html;
                    Console.WriteLine("第" + x + "次请求返回信息" + html);

                }).Start(i);

            }
            Console.ReadKey();

 

这是一个用于网站监控的程序,对于服务器管理员来说,24小时监控服务器是否正常是很烦人的时。有了这个程序,一切都简单了。 本软件是一个运行于Win2000服务器上的HTTP监控程序,可以实时监控服务的运行状态,一但HTTP服务发生错误,可以自动重起服务器、重起IIS、或是通过请求指定的页面通知管理员。 本程序很小,完全不会影响到服务器的性能。 使用说明:将 HttpMon.exe 复制到硬盘上,并将其添加到Windows的任务计划中,设置为"计算机启动时运行",以administrator 的权限运行。 主要功能: 一.定时功能: 可指定每隔几天重启一次计算机或是重启IIS。 若是指定为0天时表示每天重启一次。 二.Http监控: 1.运行HttpMon.exe 点击"添加"按钮添加监控条件。 a)在"检查链接"里加上用来监控的页面 如 http://XXX/state.asp 在state.asp加随意加上一个简单代码,如<%response.write "OK"%> 这样可以检查IIS是否死掉 若要检查链接数据库是否正常还可以把代码写为: <% set db=CreateObject("ADODB.Connection") db.open 数据库链接 db.close %> b)在"检查频率"中可以指定多长时间检查一次,默认是20分钟 c)在返回信息中选择要检查的条件,有几种情况: 返回状态等于,返回状态值不等于,文件大小等于,小于,大于。 "返回状态值" 指IIS返回的客户端时的状态。 200 是正常 302 文件重定向 404 文件找不到 500 服务器内部错误 . . . 默认是:当返回状态不等于200时(表示IIS出错时)重起IIS 当上面情况出现时可做几个对应处理: a)重启计算机 b)重启IIS c)关闭计算机 d)请求页面 "请求页面"可用于扩展程序功能,如通过请求一个程序页面发信给管理员。 2.因为有时重启IIS不一定成功,所以当上面错误情况出现时,程序会自动缩短检查的隔时间,默认为5分钟。也可以自定义。 当上面操作多次重试都不成功时,还可以设置对应的操作。例如:当重启了3次IIS后还是有错误,这时可以在后面设置为重启计算机 3.关于日志功能:日志功能可以记录Http监控程序的工作情况,他可以记录什么时候检查过什么页面,什么时候出现了错误,对应操作是什么。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值