在Discuz!NT企業(yè)版中,提供了對HTTP錯誤日志的記錄功能,這一點(diǎn)對企業(yè)版非常重要,另外存儲錯誤日志使用了 " /> 国产成人综合精品三级,欧美aaa免费,中文字幕一区三区

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

NET 下RabbitMQ實(shí)踐 [實(shí)戰(zhàn)篇]

  之前的文章中,介紹了如何將RabbitMQ以WCF方式進(jìn)行發(fā)布。今天就介紹一下我們產(chǎn)品中如何使用RabbitMQ的!
  在Discuz!NT企業(yè)版中,提供了對HTTP錯誤日志的記錄功能,這一點(diǎn)對企業(yè)版非常重要,另外存儲錯誤日志使用了MongoDB,理由很簡單,MongoDB的添加操作飛快,即使數(shù)量過億之后插入速度依舊不減。    
  在開始正文之前,先說明一下本文的代碼分析順序,即:程序入口==》RabbitMQ客戶端===>RabbitMQ服務(wù)端。好了,閑話少說,開始正文!    
  首先是程序入口,也就是WCF+RabbitMQ客戶端實(shí)現(xiàn):因?yàn)镈iscuz!NT使用了HttpModule方式來接管HTTP鏈接請求,而在.NET的HttpModule模板中,可以通過如下方法來接管程序運(yùn)行時發(fā)生的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)//當(dāng)開啟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技術(shù)NET 下RabbitMQ實(shí)踐 [實(shí)戰(zhàn)篇],轉(zhuǎn)載需保留來源!

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

主站蜘蛛池模板: 洪雅县| 女性| 青冈县| 札达县| 南澳县| 仪陇县| 汶上县| 石棉县| 安康市| 公安县| 益阳市| 肃宁县| 宜川县| 洪泽县| 韩城市| 茂名市| 根河市| 文昌市| 城固县| 南涧| 竹山县| 彭水| 卢湾区| 长春市| 禄劝| 庆安县| 辽宁省| 皋兰县| 浦县| 东乌珠穆沁旗| 平利县| 县级市| 新津县| 凤阳县| 都安| 荣昌县| 安泽县| 唐山市| 舟曲县| 南澳县| 陵水|