Dela via


Tekniska skillnader mellan ASP.NET Framework och ASP.NET Core

Det här dokumentet beskriver viktiga tekniska skillnader mellan ASP.NET Framework och ASP.NET Core som du bör förstå innan du påbörjar migreringen.

Skillnader i URI-avkodning

ASP.NET Core hanterar URI-kodning på olika sätt:

Karaktär Kodade ASP.NET Core ASP.NET Framework
\ %5C \ /
/ %2F %2F /

Rekommendation: Använd new Uri(this.AspNetCoreHttpRequest.GetEncodedUrl()) för korrekt URL-hantering.

Migrering av användarhemligheter

Användarhemligheter kräver särskild hantering. Se GitHub-problem #27611 för aktuell vägledning.

CultureInfo.CurrentCulture skillnader

Anmärkning

ASP.NET Core konfigurerar automatiskt inte CultureInfo.CurrentCulture för begäranden som ASP.NET Framework gör. Du måste uttryckligen konfigurera mellanprogram för lokalisering.

I ASP.NET Framework CurrentCulture har angetts för en begäran, men detta görs inte automatiskt i ASP.NET Core. I stället måste du lägga till rätt mellanprogram i pipelinen.

Rekommendation: Mer information om hur du aktiverar detta finns i ASP.NET Core Localization .

Det enklaste sättet att aktivera detta med liknande beteende som ASP.NET Framework är att lägga till följande i pipelinen:

app.UseRequestLocalization();

Överväganden för trådning

Anmärkning

På så sätt används System.Web Adapters för att förenkla migreringen.

ASP.NET Core garanterar inte trådtillhörighet för begäranden. Om koden kräver trådtillhörighet måste du säkerställa korrekt synkronisering eller använda attributet SingleThreadedRequest :

[SingleThreadedRequest]
public class LegacyController : Controller
{
    public IActionResult Index()
    {
        // Some code that requires to be run on a single thread
        return View();
    }
}