如果你有一个JS库,比如dynamsoft.webtwain.min.js,允许开发者来调用,怎么样可以通过C#统计调用的次数?
使用HTTP Module捕获请求
在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。