在Discuz!NT企業版中,提供了對HTTP錯誤日志的記錄功能,這一點對企業版非常重要,另外存儲錯誤日志使用了 " /> 日本成人中文,精品国产自在精品国产浪潮,国产精品22p

色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

NET 下RabbitMQ實踐 [實戰篇]

  之前的文章中,介紹了如何將RabbitMQ以WCF方式進行發布。今天就介紹一下我們產品中如何使用RabbitMQ的!
  在Discuz!NT企業版中,提供了對HTTP錯誤日志的記錄功能,這一點對企業版非常重要,另外存儲錯誤日志使用了MongoDB,理由很簡單,MongoDB的添加操作飛快,即使數量過億之后插入速度依舊不減。    
  在開始正文之前,先說明一下本文的代碼分析順序,即:程序入口==》RabbitMQ客戶端===>RabbitMQ服務端。好了,閑話少說,開始正文!    
  首先是程序入口,也就是WCF+RabbitMQ客戶端實現:因為Discuz!NT使用了HttpModule方式來接管HTTP鏈接請求,而在.NET的HttpModule模板中,可以通過如下方法來接管程序運行時發生的ERROR,如下:         

  context.Error += new EventHandler(Application_OnError);   

   而“記錄錯誤日志"的功能入口就在這里:
public void Application_OnError(Object sender, EventArgs e)
{
string requestUrl = DNTRequest.GetUrl();
HttpApplication application
= (HttpApplication)sender;
HttpContext context
= application.Context;#if EntLib
if (RabbitMQConfigs.GetConfig() != null && RabbitMQConfigs.GetConfig().HttpModuleErrLog.Enable)//當開啟errlog錯誤日志記錄功能時
{
RabbitMQClientHelper.GetHttpModuleErrLogClient().AsyncAddLog(
new HttpModuleErrLogData(LogLevel.High, context.Server.GetLastError().ToString()));//異步方式
//RabbitMQHelper.GetHttpModuleErrLogClient().AddLog(new HttpModuleErrLogData(LogLevel.High, "wrong message infomation!"));//同步方式
return;
}
#endif
...
}

NET技術NET 下RabbitMQ實踐 [實戰篇],轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 遂平县| 海丰县| 乃东县| 深泽县| 习水县| 马山县| 托克托县| 西青区| 高唐县| 凉城县| 罗源县| 永修县| 巴东县| 尼玛县| 体育| 甘肃省| 奇台县| 万全县| 宜君县| 安乡县| 黄梅县| 白山市| 车险| 商城县| 南通市| 阳高县| 陇西县| 大渡口区| 西丰县| 浦北县| 庆阳市| 文成县| 潮安县| 兰溪市| 黔江区| 南郑县| 高碑店市| 焉耆| 安义县| 桂平市| 蒲江县|