Mam witrynę ASP.NET MVC. Gdy wystąpią błędy w witrynie, chciałbym zarejestrować wyjątek wraz z wartością Request.AnonymousID
, aby móc wykryć, czy jeden użytkownik ma 20 błędów, lub 20 użytkowników doświadcza tego samego błędu. Poniższa został dodany do pliku web.config
:AnonymousId ma zawsze wartość null
<system.web>
<anonymousIdentification enabled="true" />
...
</system.web>
Rozwijając w Visual Studio i korzystania z usług IIS Express, to działa zgodnie z przeznaczeniem. Jednak po przeniesieniu witryny do środowiska testowego (które uruchamia usługi IIS 8.5 w systemie Windows Server 2012 R2) wartość Request.AnonymousID
jest zawsze pusta.
Uwierzytelnianie anonimowe zostało również skonfigurowane dla witryny w IIS. Po każdej zmianie konfiguracji próbuję zrestartować witrynę, zresetować pulę aplikacji i wyczyścić pliki cookie w przeglądarce - nic nie działa. Plik cookie .ASPXANONYMOUS
zostaje wygenerowany, ale identyfikator jest zawsze pusty, gdy próbuję go użyć w kodzie.
Próbowałem nawet stworzyć szybką stronę-dummy, która pokazuje tylko AnonymousId na stronie i działa w środowisku testowym, więc nie mogę wymyślić, co robię źle w aktualnej witrynie.
Każda pomoc zostanie bardzo doceniona.
Edit 1: Dodałem następujące do
Global.asax
, w celu wygenerowania niestandardowej AnonymousId:
protected void AnonymousIdentification_Creating(object sender, AnonymousIdentificationEventArgs args)
{
string id = string.Format("Test-{0}", Guid.NewGuid());
args.AnonymousID = id;
}
Ponownie, to działa na moim komputerze i na moim miejscu manekina na test- serwer, ale nie w rzeczywistej witrynie.
Witryna jest podstroną (np. mysite .domena.com), jeśli ma to jakiekolwiek znaczenie. Fikcyjna witryna jest także podstroną, ale tutaj anonimowe uwierzytelnianie działało "po wyjęciu z pudełka".
Edit 2: Wydaje się, że nie jest już AnonymousId
zerowy na miejscu w teście-środowiskowych. Został teraz wypełniony formatem dostarczonym w module obsługi zdarzenia dodanym do Global.asax
. Tak więc, chociaż wygląda na to, że wszystko ustawiłem poprawnie, nadal chciałbym wiedzieć, co mogło zapobiec wygenerowaniu identyfikatora. Czy to był problem z konfiguracją? Czy nie zrobiłem rzeczy we właściwej kolejności (zrestartuj pulę aplikacji serwera/recyklingu, wyczyść pliki cookie itp.)?
Czy oba środowiska (programista i test) korzystają z tej samej nazwy hosta? – haim770
@ haim770 Witryna dev dostępna jest przez _localhost: 61615_ na moim komputerze, podczas gdy strona testowa ma aktualną nazwę hosta. Witryna jest podstroną (np. ** mysite **. Domain.com), jeśli to robi jakąkolwiek różnicę. –