AnonymousId始终为null

我有一个ASP.NET MVC站点。 当网站上发生错误时,我想记录exception以及Request.AnonymousID的值,以便能够发现一个用户是否遇到20个错误,或者20个用户遇到相同的错误。 以下内容已添加到web.config文件中:

   ...  

在Visual Studio中开发并使用IIS Express时,这可以按预期工作。 但是,当站点移动到测试环境(在Windows Server 2012 R2上运行IIS 8.5)时, Request.AnonymousID的值始终为null。

还为IIS中的站点配置了匿名身份validation。 每次更改配置后,我尝试重新启动站点,回收应用程序池,并在浏览器中清除cookie – 似乎没有任何效果。 生成.ASPXANONYMOUS cookie,但当我尝试在代码中使用它时,ID始终为空。

我甚至尝试创建一个只在页面上显示AnonymousId的快速虚拟站点,它在Test环境中工作,所以我无法弄清楚我在实际站点中做错了什么。

任何帮助将不胜感激。


编辑1:我已将以下内容添加到Global.asax ,以生成自定义AnonymousId:

 protected void AnonymousIdentification_Creating(object sender, AnonymousIdentificationEventArgs args) { string id = string.Format("Test-{0}", Guid.NewGuid()); args.AnonymousID = id; } 

同样,这适用于我的机器和测试服务器上的虚拟站点,但不适用于实际站点。

该网站是一个子网站(例如mysite .domain.com),如果这有任何区别。 虚拟站点也是一个子站点,但匿名身份validation在这里工作“开箱即用”。


编辑2:在测试环境中, AnonymousId似乎不再为null。 它现在填充了添加到Global.asax的eventhandler中提供的格式。 因此,虽然看起来我已经正确设置了所有内容,但我仍然想知道可能阻止生成Id的原因。 这是配置问题吗? 我没有按正确的顺序做事(重启服务器/回收应用程序池,清除cookie等)?

这应该工作。 主机名和ASPXANONYMOUS cookie之间没有关联

检查IIS上是否安装了匿名身份validation模块以及它设置为什么。 我见过没有安装此模块的实例。