This is a viewer only at the moment see the article on how this works.
To update the preview hit Ctrl-Alt-R (or ⌘-Alt-R on Mac) or Enter to refresh. The Save icon lets you save the markdown file to disk
This is a preview from the server running through my markdig pipeline
Μικρό ίχνος παρακολούθηση ενότητα για .TEXT ΜSK1 blogs...
Tuesday, 06 July 2004
OK, μπορεί να τεκμηριωθεί τρομεράΜSK1 αλλά λειτουργεί...αυτό είναι μόνο η πηγή για ένα μικρό HttpModule που παρακολουθεί τα χτυπήματα σε μια M SK3TEXT blog Η - αρκετά απλή, αλλά θα πρέπει να δώσει σε όποιον θέλει να το κάνει ένα ξεκίνημαΗ ΜSK5Θα θέλω την ' θα δημοσιεύσει μια πιο ολοκληρωμένη έκδοση σε κάποιο σημείο Η (σχεδόν απλά θέλουν να δοκιμάσουν πώς αυτή η επιδερμίδα συμπεριφέρεται με τον κώδικα που αναρτήθηκε η ;-))
Χρησιμοποιώντας το σύστημα;
Χρησιμοποιώντας το σύστημα.Web;
Χρησιμοποιώντας το Σύστημα.Διαγραφή δεδομένωνΜSK1
Χρησιμοποιώντας το Σύστημα.Προσωπικά δεδομένα.SqlClientM SK2
Χρησιμοποιώντας το Dottext.FrameworkΜSK1
Χρησιμοποιώντας το Σύστημα.ΚολέσειςΜSK1Εκείμενα ειδικευμένα;
Χρησιμοποιώντας το σύστημα.IO;
Χρησιμοποιώντας το Σύστημα.Text;
Χρησιμοποιώντας το Σύστημα.Xml.ΣεριοποίησηM SK2
Χρησιμοποιώντας το Σύστημα.Επεξεργασία;
Χρησιμοποιώντας το σύστημα.Net;
Χρησιμοποιώντας το Microsoft.ApplicationBlocks.ΠληροφορίεςΜSK2
Ετικέτες ExtraControls
{
///
/// Συνοπτική περιγραφή για ViewTrackModule.
///
δημόσια τάξη ViewTrackModule : IHttpModule
{
#περιφέρεια IHttpΜεταίροι
Δημόσιο κενό Init(HttpΕφαρμοστικό πλαίσιο)
{
Περιεχόμενο.EndRequest ΜSK1 νέα EventHandler(context_EndRequestΜSK1
}
Δημόσιο κενό Διαθέσιμο()
{
// TODO : Προσθήκη ViewTrackModule.Εμφάνιση εφαρμογής
}
ΜΣΚ0ενδρική περιοχή
///
/// Ok, λίγο ασυνήθιστοM SK2αλλά χρειάζομαι το αντικείμενο BlogConfig να είναι διαθέσιμο για την πρόσβαση DBΜSK3
///
///
///
ιδιωτικό κενό πλαίσιο_EndRequest(object αποστολέαςM SK2 EventArgs eMK3
{
HttpApplication httpApp = αποστολέας ως HTTPApplication;
Συστήματα.Uri ur =HTTPAppM SK2ΑναζητήστεΜSK3UrlReferrerMK4
Σύνδεσμος δοκιμήHost =Σύνδεση συνδέσμου.ΕλεύθεροΜSK2
string thisHost = httpApp.RequestMK2ServerVariables[" διακομιστής_NAMEΜSK1
Εάν (ur ΜSK1 null ΜSK2
{
testHost = urΜSK1Host;
}
Εάν (testHost ΜSK1 thisHost)
{
HttpRequest re =HTTPAppΜSK1Αναζητήστε;
LogToDBDel del = νέα LogToDdel(LogToDBM SK2
IAsyncResult ar = delΜSK1BeginInvokeM SK2,nullMK4nollMST5
}
}
Ιδιωτικό αντιπρόσωπο κενό LogToDBDel(HttpRequest re);
Ιδιωτικό κενό LogToDB(HttpRequest re)
{
Σύνδεσμος M_συνδεσιμότηταString ΜSK1Dottext.FrameworkM SK3ConfigurationMK4BlogConfigureSettingsMSKA5InstanceMKA6BlogProvidersMSKI7DbProviderMKI8ConnectionStringMRK9
Σύνδεσμος clientIP = reΜSK1UserHostAddress;
Εάν (!clientIP.StartsΜαζί με το ("192.") ΜSK3 ΜSK4ClientIP .StartWithMK6
{
Σύνδεσμος clientUserAgent = reΜSK1Ο χρήστηAgent;
Σύνδεσμος clientReferer = reΜSK1ServerVariables["HTTP_ΕπεξεργασίαΜSK1
Σύνδεσμος clientHostName =ΣύνδεσηΜSK1Ελεύθερο;
Δοκιμάστε
{
clientHostName = ΔΝΣΜSK1GetHostByAddress(clientIPM SK3Ορισμός
}
Εξαίρεση )
{
clientHostName = reΜSK1UserHost Name;
}
Σύνδεσμος clientQueryString = reΜSK1RawUrl;
ΠΑΡΑΜΑΙΤΕΡ[] sqlParams = SqlHelperParameterCache.GetSpParametrSetM SK3m_σύνδεσηStringΜSK1 ΜSK2prΕτικέτες Blog_SaveEntryStatsΜSK1
ΣΧΕΔΙΟ[0].Αξιολόγηση ΜSK1 clientIP ΜSK2
ΣΧΕΔΙΟ[1].Αξιολόγηση ΜSK1 clientUserAgent;
ΣΧΕΔΙΟ[2].Αξιολόγηση ΜSK1 clientHostName ΜSK2
ΣΧΕΔΙΟ[3].Αξία ΜSK1 clientQueryString ΜSK2
ΣΧΕΔΙΟ[4].Αξιολόγηση ΜSK1 DateTime ΜSK2Τώρα ΜΣΚ3
ΣΧΕΔΙΟ[5].Αξιολόγηση ΜSK1 clientReferer ΜSK2
Δοκιμάστε
{
SqlHelper.ExecuteNonQuery(m_σύνδεσηStringΜSK1 CommandType.StoredProcedureM SK3MK4prΕτικέτες BlogΜΣΚ0SaveEntryStats", sqlParams ΜΣΚ2
}
Εξαίρεση )
{
}
}
}
}
}
Όπως συνήθως, αυτό χρειάζεται μια είσοδο στο webΜSK1config για να χτυπήσει στην ενότητα:
<HTTP Μοντέλα> <Προσθήκη ονόματος="RequestLoggerΜSK1 τύπου="ExtraControlsM SK3ViewTrackModuleMK4 ExtraControl> </httpModules>