parallax background image

DotNet Core-applicaties in development-modus

Gepubliceerd op 7 februari 2017 Leestijd : 2 minuten

.NET core is de platformonafhankelijke .NET-implementatie van Microsoft. .NET-core-applicatie kunnen bijvoorbeeld worden geactiveerd op Linux-omgevingen, waarvan mogelijke effecten zijn: lagere hostingkosten en vergroten van schaalbaarheid oplossing.

Er zijn echter een aantal belangrijk verschillen, bijvoorbeeld hoe lazy loading werkt ten opzicht van .NET-framework. Onlangs integreerde ik ASP.Net Identity in een .NET Core-applicatie, maar moest ik Development-modus activeren om een probleem te vinden. Na herladen applicatie verscheen de volgende foutmelding in beeld:  ‘InvalidOperationException: Could not find 'UserSecretsIdAttribute' on assembly’.

Na even zoeken ontdekte ik dat de template die gebruikt wordt door Visual Studio (althans degene die ik gebruikte) om een .NET Core-solution te maken, gedateerd was: “Version 1.0.1 and up now requires you specify an assembly-level attribute for the id of the user secrets, or as a fallback, the way it was previously in project.json.”. Hoewel in de mededeling op GitHub stond dat als fallback UserSecretsId nog steeds gezocht zou worden in projects.json, leek dat bij mij niet te werken.

Toen ik de voorgestelde wijzigingen doorvoerde, werkte de applicatie in development-modus. De wijzigingen waren als volgt (zie eerdere link) in Startup.cs:


[assembly: UserSecretsId("aspnet-MyApplication-123434-ABCD-ABCD-XYZA-234324324")]
namespace MyNamespace
{
    public class Startup
    {

En:


        if (env.IsDevelopment())
            {
                // For more details on using the user secret store see http://go.microsoft.com/fwlink/?LinkID=532709
                builder.AddUserSecrets<Startup>();
            }

Dit probleem treedt alleen op met deze template en .NET Core 1.0.1 en hoger, in development-modus (of als AddUserSecrets wordt toegepast). Een structurele oplossing is om de template aan te passen. Wellicht is dit reeds gebeurd, maar dat heb ik niet gecontroleerd.

Onze klanten
Onze oplossingen