# وحدة تتبع ضربات صغيرة لدونات .TEXT 0.95

<datetime class="hidden">2004-07-06T00:00</datetime>

<!-- category -- mostlylucidcouk, Imported -->
حسناً , مسجل بشكل رهيب , لكنه يعمل | ... | هذا مجرد مصدر لنموذج صغير لـ HttpModule الذي يتبع ضربات إلى مدونة |. |TEXT ♫ - | بسيطة جداً لكنها يجب أن تعطي أي شخص يريد أن يفعلها بداية |

باستخدام نظام;

باستخدام نظام.Web;

باستخدام نظام.Data;

باستخدام نظام.Data.SqlClientM SK2

باستخدام Dottext.Framework;

باستخدام النظام.جمعاتM SK1تخصصة;

باستخدام نظام.IO;

باستخدام نظام.Text;

باستخدام النظام.Xml.SerializationM SK2

باستخدام النظام.Threading;

باستخدام نظام.Net;

باستخدام مايكروسوفت

أدوات التحكم الإضافية للمساحة

{

///

/// شرح ملخص لنموذج ViewTrack.

///

المستوى العام مُعدّل الملاحظات البصرية : IHttpModule

{

Members of IHttpModule #region

الفراغ العام في Init(HttpApplication context

{

السياق.EndRequest += new EventHandlerM SK2context\_EndRequest);

}

الفراغ العام إزالة

{

// TODO: إضافة ViewTrackModule

}

#منطقة النهاية

///

/// حسناً, قليلاً غير عاديةM SK2لكنني أحتاج لشيء BlogConfig ليكون متاحاً للدخول إلى DB ...

///

///

///

السياق الفارغ الخاص\_EndRequest(object sender , EventArgs eM SK3

{

HttpApplication httpApp = المرسل كHttpAppplication;

نظام.Uri ur M SK1 httpApp.RequestMSC3UrlReferrerMST4

إختبار الأوتار المضيف = الأوتار. فارغةM SK2

string thisHost = httpApp.RequestM SK2ServerVariables["SERVER\_NAME"];

إذا (ur != null)

{

موقع الاختبار = ur.HostM SK2

}

إذا (testHost != thisHost)

{

HttpRequest re = httpAppM SK1Request;

LogToDBDel del = جديد LogTo DBDel(LogToDBM SK2

IAsyncResult ar = del.BeginInvoke (reMSC3nullM SK4null≥);

}

}

الوثيقة الخاصة غير صالحة LogToDBDel(HttpRequest re);

الفراغ الخاص LogToDB(HttpRequest re)

{

الأوتار m\_connectionString

إتصال string clientIP = reM SK1UserHostAddress;

إذا(!clientIP.بدأت معM SK2 && | | ! |clientIP |. | بدأت مع |

{

clientUserAgent = re.USERAgentM SK2

clientReferer = re.ServerVariables["HTTP\_REFERER"];

string clientHostName = stringM SK1empty;

حاول

{

اسم ម៉ាស៊ីន клиент = Dns.GetHostByAddress (clientIPM SK3NameHostMSC4

}

الصيد(استثناء)

{

clientHostName = reM SK1UserHost Name;

}

clientstringQueryString = reM SK1RawUrl;

parametrs-parameter[] sqlParams = SqlHelperParameterCacheM SK2GetSpParameterSet(m\_connectionString,  "pr\_Blog\_SaveEntryStats"); 

sqlParams[0].القيمة  =IP الزبون;

sqlParams[1].قيمة  =clientUserAgent;

sqlParams[2].قيمة  =clientHostName;

sqlParams[3].قيمة  =clientQueryString;

sqlParams[4].القيمة  =DateTime.NowM SK3

sqlParams[5].القيمة = المراجع العميلي;

حاول

{

SqlHelper.ExecuteNonQuery(m\_connectionStringM SK1 CommandType.StoredProcedureMSC3 "pr\_Blog\_SaveEntryStatsM SK1 sqlParams) ;

}

الصيد(استثناء)

{

}

}

}

}

}

كما هو الحال , هذا يحتاج إلى مدخل في الشبكة .config لربطه في النموذج

&lt;وحدات http&gt;
&lt;إضافة اسم="RequestLoggerM SK1 النوع="ExtraControls .ViewTrackModuleMSC4 ExtraControls&gt;
&lt;/httpModules&gt;