Umbraco 8.15 uuendamine
Meie kliendil on CRM-süsteem, mis on ehitatud Umbraco 8 peal.
Sellel süsteemil on ruudustikud, mis võimaldavad CRUD-operatsioone.
Kuna süsteemi kasutab palju kasutajaid, on vaja iga päev uuendada Umbraco uusimat versiooni.
Teostame uuenduse viimasele 8.15 versioonile ja seisame silmitsi ummikseisuga, kui üritame salvestada mõned kirjed samal ajal.
Salvesta meetod tagastab sellise sõnumi
"Transaction (Process ID 92) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction."
Kliendi kood kasutab sellist meetodit, et saada praegune sisselogitud kasutajanimi:
MembershipUser user = Membership.GetUser();
var groups = FrontendHelper.GetRoles(user);
Kui me vaatame sees Membership.GetUser meetodi Umbraco MembershipHelper leidsime, et GetUser alati täita viimane login update, kui guieried kasutaja on online.
if (userIsOnline)
{
// when upgrading from 7.2 to 7.3 trying to save will throw
if (UmbracoVersion.Current >= new Version(7, 3, 0, 0))
{
var now = DateTime.Now;
// update the database data directly instead of a full member save which requires DB locks
MemberService.SetLastLogin(username, now);
member.LastLoginDate = now;
member.UpdateDate = now;
}
}
Ma ei analüüsinud koodimuudatusi, mis põhjustavad ummikuid 8.15, kuid mitte 8.6, kuid me lihtsalt eemaldasime kallid Db salvestused, kui meil on vaja saada kasutajanime, võttes selle Identity'st:
kasutajanimi = System.Web.HttpContext.Current.User.Identity.Name;
Nii et olge ettevaatlik, kui kasutate mõnda tavalist meetodit liiga tihti.
Ja see on lugu QA olulisusest iga väiksema uuenduse puhul.
Nii et kui teil on vaja Umbraco tuge või uuendusi, siis saatke meile lihtsalt sõnum.