AnonymousId 始终为空
本文关键字:AnonymousId | 更新日期: 2023-09-27 18:33:44
我有一个 ASP.NET 的MVC网站。当网站上发生错误时,我想记录异常以及 Request.AnonymousID
的值,以便能够发现一个用户是否遇到 20 个错误,或者 20 个用户遇到相同的错误。以下内容已添加到web.config
文件中:
<system.web>
<anonymousIdentification enabled="true" />
...
</system.web>
在Visual Studio中开发并使用IIS Express时,这可以按预期工作。但是,当站点移动到测试环境(在 Windows Server 2012 R2 上运行 IIS 8.5(时,Request.AnonymousID
的值始终为 null。
还在 IIS 中为站点配置了匿名身份验证。每次更改配置后,我都会尝试重新启动站点,回收应用程序池并清除浏览器中的cookie - 似乎没有任何效果。生成.ASPXANONYMOUS
cookie,但当我尝试在代码中使用它时,ID 始终为空。
我甚至尝试创建一个快速虚拟站点,该站点仅在页面上显示AnonymousId,并且它适用于测试环境,因此我无法弄清楚我在实际站点中做错了什么。
任何帮助将不胜感激。
编辑 1:我已将以下内容添加到
Global.asax
,以便生成自定义的匿名ID:
protected void AnonymousIdentification_Creating(object sender, AnonymousIdentificationEventArgs args)
{
string id = string.Format("Test-{0}", Guid.NewGuid());
args.AnonymousID = id;
}
同样,这适用于我的机器和测试服务器上的虚拟站点,但不适用于实际站点。
该站点是一个子站点(例如mysite.domain.com(,如果这有什么不同的话。虚拟站点也是一个子站点,但在这里匿名身份验证"开箱即用"。
编辑 2:在测试环境中,站点上的AnonymousId
似乎不再为空。现在,它已填充添加到 Global.asax
的事件处理程序中提供的格式。因此,虽然我似乎已经正确设置了所有内容,但我仍然想知道是什么阻止了 ID 的生成。是配置问题吗?我没有按照正确的顺序做事(重新启动服务器/回收应用程序池、清除 cookie 等(?
这应该有效。主机名和 ASPXANONYMOUS cookie 之间没有关联
检查 IIS 上是否安装了匿名身份验证模块以及它的设置。我见过未安装此模块的情况。