这个问题的答案提到了开源 GAnalytics 替代品 Piwik——它不是 C#,但你可能会从实现中得到一些想法。
对于 .NET 解决方案,我建议阅读 Matt Berseth 的Visit/PageView Analysis Services Cube博客文章(以及更早的示例和另一个示例,因为在他的网站上不容易找到)。
我不确定他是否曾经发布过服务器端代码(尽管您会openurchin.js在他的 html 中找到他的链接),但您会发现大部分概念都得到了解释。按照他的指示,您可能会很快得到一些工作。
我认为您不想写入文本文件 - 可能会出现锁定问题;我会在数据库表中插入 INSERT。如果表变得太大,您总是可以定期“汇总”结果并清除旧记录。至于 REFERER Url,您绝对可以从 HTTP HEADERS 中获取该信息(假设它是由客户端发送的,并且没有被代理或严格的 AV 软件设置剥离)。
顺便说一句,请记住,Google Analytics 为统计数据增加了很多价值 - 它对 IP 地址进行地理编码以按位置(国家/城市)以及 ISP/IP 所有者显示结果。他们的 javascript 进行 Flash 检测并将用户代理分割成有用的“浏览器类别”,并且还检测其他用户设置,如操作系统和屏幕分辨率。如果您想获得相同级别的报告,则必须进行一些重要的编码 - 更不用说获取进入和退出页面信息、回访、唯一访问者、回访者、花费时间的数据和计算网站等
您可能还想查看一个Google Analytics API 。