在Discuz!NT企業版中,提供了對HTTP錯誤日志的記錄功能,這一點對企業版非常重要,另外存儲錯誤日志使用了 " /> 黄色污污视频在线观看,国产麻豆日韩,久久综合伊人77777麻豆

色尼玛亚洲综合影院,亚洲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實踐 [實戰篇],轉載需保留來源!

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

主站蜘蛛池模板: 于都县| 长汀县| 班戈县| 彰化市| 台北市| 盐山县| 万源市| 开阳县| 九龙坡区| 仁怀市| 北安市| 彰化市| 龙南县| 读书| 三江| 苍南县| 金塔县| 辽宁省| 保山市| 辽阳县| 额济纳旗| 织金县| 临桂县| 敦煌市| 刚察县| 梧州市| 浙江省| 连南| 黔西县| 淮北市| 禄劝| 嵩明县| 茶陵县| 陵水| 安福县| 绵阳市| 孟连| 紫阳县| 南木林县| 乡宁县| 庐江县|