如果你有一个JS库,比如dynamsoft.webtwain.min.js,允许开发者来调用,怎么样可以通过C#统计调用的次数?
在web工程中创建一个HTTPModuleManager.cs文件。
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.IO; /// <summary> /// Summary description for HttpModuleManager /// </summary> public class HttpModuleManager : IHttpModule { private FileHelper mFileHelper; public void Dispose() { } public void Init(HttpApplication context) { string dir = Path.Combine(context.Context.Server.MapPath("."), "data"); string logFile = null; if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir); } // Write record to text file. logFile = Path.Combine(dir, "log.txt"); mFileHelper = new FileHelper(logFile, false); context.LogRequest += new EventHandler(OnLogRequest); } public void OnLogRequest(Object source, EventArgs e) { HttpApplication application = (HttpApplication)source; HttpContext context = application.Context; string url = context.Request.Url.AbsoluteUri.ToLower(); if (url.Contains("dynamsoft.webtwain.min.js")) { // Write record to text file. mFileHelper.WriteLog(context.Request.UserHostAddress); } } }配置web.config。
<system.webServer> <modules> <add name="HttpModuleManager" type="HttpModuleManager" /> </modules> </system.webServer>通过publish可以自动编译部署到IIS。 接下来可以创建一个新的web工程来调用这个JS文件。首次调用之后会生成log,记录下调用者的IP。
https://github.com/yushulx/csharp-http-module