C# 通过程序监控网站是否正常

最近在写一个小工具来监控网站是否正常

代码如下:

public  void MonitorWeb(Model.ServiceInfo mServerInfo)
        {
             var sUrl = mServerInfo.ServiceConfig;
             var mLogInfo =  new Model.LogInfo { ServiceId = mServerInfo.ServiceId };
             try
            {
                 var mWebRequest = (HttpWebRequest)WebRequest.Create(sUrl);
                 var mWebResponse = (HttpWebResponse)mWebRequest.GetResponse();

                 if (mWebResponse.StatusCode == HttpStatusCode.OK)
                {
                    mLogInfo.Status =  " 1 ";
                    mLogInfo.Remark =  "";
                    mServerInfo.ErrorCou =  0;
                }
                 else
                {
                    mLogInfo.Status =  " 0 ";
                    mLogInfo.Remark = mWebResponse.StatusDescription;
                    mServerInfo.ErrorCou = mServerInfo.ErrorCou +  1;
                }

                mWebResponse.Close();
            }
             catch (Exception ex)
            {
                mLogInfo.Status =  " 0 ";
                mLogInfo.Remark = ex.Message;
                mServerInfo.ErrorCou = mServerInfo.ErrorCou +  1;
            }

            DAL.DbOp.UpdateState(mServerInfo, mLogInfo);
        }

最重要部份

var mWebRequest = (HttpWebRequest)WebRequest.Create(sUrl);
var mWebResponse = (HttpWebResponse)mWebRequest.GetResponse();
if (mWebResponse.StatusCode == HttpStatusCode.OK)

转载于:https://www.cnblogs.com/chendaoyin/archive/2013/05/04/3059685.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!可以使用海康SDK中提供的函数实现监控相机是否在线的功能。 首先,您需要引入海康SDK的相关命名空间,然后使用 HCNetSDK.dll 中的函数来实现。 具体实现步骤如下: 1. 初始化 SDK 在程序启动时,调用 HCNetSDK.NET_DVR_Init() 初始化 SDK。 2. 登录相机 调用 HCNetSDK.NET_DVR_Login_V30() 函数登录相机,登录成功后会返回一个登录句柄。 3. 获取相机状态 调用 HCNetSDK.NET_DVR_GetDVRConfig() 函数,传入参数为 NET_DVR_GET_WORK_STATUS,然后获取相机状态信息。 4. 判断相机是否在线 在获取到相机状态信息之后,通过判断相机状态来判断相机是否在线。如果相机状态为正常,则相机在线;否则相机离线。 下面是一段示例代码: ```csharp using System; using System.Runtime.InteropServices; using HCNetSDK; class Program { static void Main(string[] args) { // 初始化 SDK HCNetSDK.NET_DVR_Init(); // 登录相机 NET_DVR_USER_LOGIN_INFO loginInfo = new NET_DVR_USER_LOGIN_INFO(); loginInfo.sDeviceAddress = "192.168.1.100"; loginInfo.wPort = 8000; loginInfo.sUserName = "admin"; loginInfo.sPassword = "12345"; loginInfo.bUseAsynLogin = false; NET_DVR_DEVICEINFO_V40 deviceInfo = new NET_DVR_DEVICEINFO_V40(); int loginHandle = HCNetSDK.NET_DVR_Login_V40(ref loginInfo, ref deviceInfo); // 获取相机状态 NET_DVR_WORK_STATUS workStatus = new NET_DVR_WORK_STATUS(); int bufferSize = Marshal.SizeOf(workStatus); IntPtr bufferPtr = Marshal.AllocHGlobal(bufferSize); Marshal.StructureToPtr(workStatus, bufferPtr, true); int bytesReturned = 0; bool success = HCNetSDK.NET_DVR_GetDVRConfig(loginHandle, HCNetSDK.NET_DVR_GET_WORK_STATUS, -1, bufferPtr, bufferSize, out bytesReturned); workStatus = (NET_DVR_WORK_STATUS)Marshal.PtrToStructure(bufferPtr, typeof(NET_DVR_WORK_STATUS)); // 判断相机是否在线 if (workStatus.dwDeviceStatic == 1) { Console.WriteLine("相机在线"); } else { Console.WriteLine("相机离线"); } // 登出相机并释放资源 HCNetSDK.NET_DVR_Logout(loginHandle); HCNetSDK.NET_DVR_Cleanup(); } } ``` 注意,以上代码仅为示例,仅供参考。具体实现还需根据您的具体需求进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值