Etikettarkiv: knowledgebase

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: