Etikettarkiv: asp.net 2.0 sp1

ASP.NET 2.0 SP1

Som några av våra läsare kanske noterat så uppstår ett lite speciellt problem med ASP.NET 2.0 efter det att man installerar ASP.NET 2.0 service pack 1 (hädanefter kallat SP 1). När vi läste genom listan över ändringar för SP 1 och installerade det på våra kundservrar så rapporterade några få kunder obskyra fel i sina sidor.

Det visade sig att problemet har att göra med hur man refererar till datakolumner med asp:Repeater, asp:DataGrid och asp:DataList. Innan installation av SP 1 så kunde man i VB exempelvis använda sig av Container.DataItem(”kolumnnamn”) för att referera till sitt data, men efter installation av SP 1 är det inte tillåtet längre utan Full Trust. Det är inte speciellt bra att använda Full Trust i delade miljöer, vi använder därför Medium Trust, så en annan metod att referera till sitt data behövdes.

Beteendet har därmed ändrats i och med SP 1. Om man använder det sätt som Microsoft rekommenderar för att refererera till datat, Databinder.Eval(Container.DataItem, ”kolumnnamn”), så fungerar det utmärkt i VB och C# både före och efter SP 1. Vi rapporterade detta till Microsofts Gold Partner-support som snabbt konstaterade att det var ett riktigt problem, reproducerade det i sitt labb, och bekräftade att våra antaganden var korrekta. De erbjöd sig till och med att kontakta våra kunder och förklara problemet, så de gick ”the extra mile” i ärendet. 🙂

En sak jag blev förbryllad över var skillnaden mellan VB och C#. I VB kunde man använda Container.DataItem() som en metod innan SP 1, medan C#-kompilatorn undrade vad jag höll på med, då Container.DataItem är en property och inte en metod. Det verkar vara någon form av syntaktiskt socker, då det faktiskt fungerade med SP 1 i Full Trust i VB, men med Medium Trust får man reflection exception. Microsofts supporttekniker publicerade en artikel om detta som förklarar detaljerna.

Microsoft lovade även att lägga upp en KB-artikel men det kan dröja lite, då Loopia tydligen var först med att rapportera detta problem.

Dela detta inlägg: