溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Asp.Net怎樣實(shí)現(xiàn)網(wǎng)頁(yè)實(shí)時(shí)監(jiān)控

發(fā)布時(shí)間:2021-02-04 15:37:37 來(lái)源:億速云 閱讀:162 作者:小新 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要介紹Asp.Net怎樣實(shí)現(xiàn)網(wǎng)頁(yè)實(shí)時(shí)監(jiān)控,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

一、為什么會(huì)用到網(wǎng)頁(yè)實(shí)時(shí)監(jiān)控

 LZ最近在無(wú)錫買(mǎi)房了,雖然在上海工作,但是上海房?jī)r(jià)實(shí)在太高無(wú)法承受,所以選擇還可以接受的無(wú)錫作為安身之地。買(mǎi)過(guò)房的小伙伴可能知道買(mǎi)房的流程,買(mǎi)房中間有一步很重要的就是需要商品房備案,簡(jiǎn)單點(diǎn)說(shuō)就是你買(mǎi)房時(shí)可以在政府商品房備案網(wǎng)站處查看你購(gòu)買(mǎi)房的備案情況,如果是已經(jīng)備案了開(kāi)發(fā)商還在賣(mài)這套房子,那肯定就是一房多賣(mài)了。而且很重要一點(diǎn)就是,只有備過(guò)案,才能進(jìn)行下一步銀行貸款,在目前銀行利息越來(lái)越高的情況下,肯定是越早備案越早貸款越有利,所以以最快速度知道自己購(gòu)買(mǎi)房子的備案情況尤為重要。

當(dāng)然也可以每天到網(wǎng)站查詢(xún)自己的備案情況,顯然這不是程序員的做法,更不是.Net程序員的做法。程序員的做法肯定是備案一旦下來(lái),程序老老實(shí)實(shí)的通知到手機(jī)上。順便吐槽一點(diǎn),查詢(xún)備案的網(wǎng)站真慢。

二、選擇windows服務(wù)、窗體(winform)、web還是控制臺(tái)程序?

當(dāng)然最合適的肯定是windows服務(wù),winform和web肯定也可以的,控制臺(tái)程序不一定是最合適的,但肯定開(kāi)發(fā)是最快速的。綜合考慮了一下,因?yàn)槭且粋€(gè)很小的監(jiān)控項(xiàng)目而且只會(huì)用一兩個(gè)月,或者一兩天,所以沒(méi)變要搞那么復(fù)雜,而且windows服務(wù)還要安裝到服務(wù)器,最重要的是控制臺(tái)是最快開(kāi)發(fā)和最容易部署的,所以最終選擇了控制臺(tái)程序。

三、分析需求

1、需要每隔幾分鐘查詢(xún)一次備案情況,所以需要System.Timers.Timer。當(dāng)然如果是非常健壯的或者是完整的項(xiàng)目,建議用Quartz.NET,當(dāng)然可以選擇Topshelf、Hangfire、FluentScheduler等等。

2、因?yàn)樾枰樵?xún)網(wǎng)站的備案情況,獲取備案網(wǎng)頁(yè)的html,然后判斷html中是否含有“待售”字樣即可,如果沒(méi)有就說(shuō)明已經(jīng)備案了。 這時(shí)需要System.Net.WebClient。查詢(xún)網(wǎng)站.net下就更多了,最基礎(chǔ)的就是HttpWebRequst,HttpClient,或者用RestSharp,都是不錯(cuò)的選擇。

3、因?yàn)樾枰獙?shí)時(shí)通知情況,所以選擇了阿里云的短信通知,因?yàn)槠渌?xiàng)目用到,所以直接復(fù)制代碼來(lái)用。當(dāng)然也有很多通知,比如郵件,app,等等。當(dāng)然我們沒(méi)必要搞那么復(fù)雜。

四、代碼模塊

直接代碼,邏輯和代碼很簡(jiǎn)單。

class Program
{
 static System.Timers.Timer timer = null;
 static void Main(string[] args)
 {
 timer = new System.Timers.Timer(2 * 60 * 1000);
 timer.Elapsed += Timer_Elapsed; ;
 timer.Start();
 Console.ReadKey();
 }
 private static void Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
 {
 WebClient client = new WebClient
 {
  Encoding = System.Text.Encoding.GetEncoding("utf-8")
 };
 var html = client.DownloadString("http://www.xxxx.com/xxxxx.html");
 Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "......" + "未簽。");
 if (html.IndexOf("待售") == -1)
 {
  if (timer != null)
  timer.Stop();
  // 發(fā)送5條短信
  for (int i = 0; i < 5; i++)
  {
  // 發(fā)送短信
  SmsMessage.Send("152****7178", "SMS_92310001", new { name = "Emrys", status = "恭喜恭喜恭喜,房子已簽售!" });
  Thread.Sleep(5 * 1000);
  }
 }
 }
}

五、部署

好吧,這項(xiàng)沒(méi)啥以及意義,直接生成代碼,在bin目錄拷貝Debug文件夾直接扔到服務(wù)器,點(diǎn)擊運(yùn)行xxxxxxx.exe。部署完畢。^_^

六、總結(jié)

1、雖然當(dāng)時(shí)只是突發(fā)奇想,并沒(méi)有具體統(tǒng)計(jì)時(shí)間,拿起vs就是一頓突突。所有代碼和部署應(yīng)該不會(huì)超過(guò)5分鐘。 從這可以看出.Net在vs配合下在一些方面做的還是不錯(cuò)的。

2、現(xiàn)在.Net core開(kāi)源跨平臺(tái)以及運(yùn)行速度,C#“優(yōu)美的語(yǔ)言”,vs宇宙第一IDE,其他不多說(shuō),望.Net越來(lái)越好。

以上是“Asp.Net怎樣實(shí)現(xiàn)網(wǎng)頁(yè)實(shí)時(shí)監(jiān)控”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI