2017-10-01 7 views
2

Ich versuche, eine ASP.NET Core 2.0 WebApplication in lokalen IIS zu hosten, aber ich bekomme immer die folgende Fehlermeldung: Wert kann nicht null sein. Parametername: NameASP.NET Core 2.0 Wert kann nicht null sein. Parametername: Name

enter image description here

Die launchSettings.json Datei sieht wie folgt aus:

{ 
"iisSettings": { 
    "windowsAuthentication": false, 
    "anonymousAuthentication": true, 
    "iis": { 
     "applicationUrl": "http://localhost/zoyotravel", 
     "sslPort": 0 
    }, 
    "iisExpress": { 
     "applicationUrl": "http://localhost:56472/", 
     "sslPort": 0 
    } 
}, 
"profiles": { 
    "IIS Express": { 
     "commandName": "IISExpress", 
     "launchBrowser": true, 
     "environmentVariables": { 
      "ASPNETCORE_ENVIRONMENT": "Development" 
     } 
    }, 
    "Zoyo Travel": { 
     "commandName": "IIS", 
     "launchBrowser": true, 
     "environmentVariables": { 
      "ASPNETCORE_ENVIRONMENT": "Development" 
     }, 
     "applicationUrl": "http://localhost:56473/" 
    } 
} 
} 

Das Programm Klasse sieht liks dies:

public class Program 
{ 
    public static void Main(string[] args) 
    { 
     BuildWebHost(args).Run(); 
    } 

    public static IWebHost BuildWebHost(string[] args) => 
     WebHost.CreateDefaultBuilder(args) 
      .UseStartup<Startup>() 
      .Build(); 
} 

Die Start Klasse sieht wie folgt aus:

public class Startup 
{ 
    // This method gets called by the runtime. Use this method to add services to the container. 
    public void ConfigureServices(IServiceCollection services) 
    { 
     services.AddMvc(); 
    } 

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. 
    public void Configure(IApplicationBuilder app, IHostingEnvironment env) 
    { 
     if (env.IsDevelopment()) 
     { 
      app.UseDeveloperExceptionPage(); 
      app.UseWebpackDevMiddleware(new WebpackDevMiddlewareOptions 
      { 
       HotModuleReplacement = true 
      }); 
     } 
     else 
     { 
      app.UseExceptionHandler("/Home/Error"); 
     } 

     app.UseStaticFiles(); 

     app.UseMvc(routes => 
     { 
      routes.MapRoute(
       name: "default", 
       template: "{controller=Home}/{action=Index}/{id?}"); 

      routes.MapSpaFallbackRoute(
       name: "spa-fallback", 
       defaults: new { controller = "Home", action = "Index" }); 
     }); 
    } 
} 

Was habe ich bisher versucht?

  • Ich habe nach allen Parametern namens "Name" in der Lösung gesucht. Aber ich konnte nichts finden, was leer sein könnte.
  • Wenn ich die Website in IIS Express hosten dann funktioniert es.

Das Problem scheint nicht im Code zu sein. Es ist auch eine Standard-asp.net Core 2.0 Web-Anwendung. Ich habe den Code selbst nicht berührt. Ich habe nur versucht, die Website in IIS zu hosten.

Kann mir jemand helfen?

+1

Was hat Hosting mit dem Fehler zu tun? Sie erhalten den Fehler in Visual Studio, nicht von IIS – Tseng

+0

Ich versuche, die Webanwendung im lokalen IIS zu hosten, wenn ich die Schaltfläche "Start" drücken, um mein Projekt auszuführen. Der folgende Fehler ist aufgetreten. –

+1

Bitte posten Sie Programm- und Startup-Klassen –

Antwort

1

Ich hatte das gleiche Problem. Ich verbrachte einen halben Tag damit, alles mögliche auszuprobieren, was mir einfiel.

Schließlich dachte ich, dass

it was an issue with appsettings.json nesting.

ich eine zusätzliche } aus der JSON-Datei entfernen musste.

Da ich Ihre appsetting.json Datei hier nicht sehen kann, kann es auch das Problem in Ihrem Fall sein. Hoffe das hilft.

1

Ich habe das gleiche Problem jetzt mehrmals aufgetreten. Anfangs habe ich gelehrt, dass ich etwas kaputt gemacht habe, weil ich beim ersten Start der App alles funktioniert habe, aber nach einem Neustart ist der Fehler "Wert kann nicht null sein. Parameter name: name" ist erneut aufgetreten. Nach einigem Experimentieren mit IIS habe ich festgestellt, dass das Erstellen und Registrieren Ihrer Anwendung in einem neuen Anwendungspool mit exakt denselben Spezifikationen, der von iisreset behoben wurde, dieses Problem löst. Der Nachteil ist, dass Sie dies tun müssen, wenn dieser Fehler auftritt. Nachdem ich das getan hatte, wechselte ich einfach zwischen den beiden Pools, die ich jetzt hatte und iisreset war genug. Hoffe es hilft!

+0

Danke, dass es für mich funktioniert hat, auch während ich das "Development time IIS support" Modul verwende, musste ich auf "no managed code" umschalten. Also ist dieses Problem 100% von IIS – Moug

Verwandte Themen