2017-12-01 9 views
2

Ich versuche, meine ASP.NET MVC Core 2 Website zu einem Windows Server 2016-Server IIS 10 laufen zu implementieren und ich erhalte die folgenden Fehler in den Anwendungsprotokollen ..NET MVC Core 2 Deployment Ausgabe auf IIS 10

Ich habe das Problem erforscht und diese .NET Core app unable to start in IIS due to ErrorCode = '0x80004005 : 80008083 Frage gefunden, die eine Antwort hat, die liest, "wie VS2017 RC mit der neuen Version von .NET Core SDK (.NET Core 1.0.4 SDK 1.0.1) geliefert wird, Sie müssen auch das Framework auf dem Server aktualisieren. "

Ich habe versucht, sowohl das SDK und Laufzeit auf dem Server wie in der Antwort oben empfohlen, aber ich bekomme immer noch den Fehler, wenn ich auf die Website navigieren.

Wie kann ich dieses Problem beheben?

Faulting application name: dotnet.exe, version: 2.0.25816.2, time stamp: 0x59e535ea 
Faulting module name: coreclr.dll, version: 4.6.25815.2, time stamp: 0x59e2b767 
Exception code: 0xc00000fd 
Fault offset: 0x000000000008247a 
Faulting process id: 0x1c68 
Faulting application start time: 0x01d36aeaea2429cf 
Faulting application path: C:\Program Files\dotnet\dotnet.exe 
Faulting module path: C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.0.3\coreclr.dll 
Report Id: 100b3c83-7509-487e-b1cd-6a0357f8b7e7 
Faulting package full name: 
Faulting package-relative application ID: 
+0

Das sieht hilfreich aus, aber es nimmt einen Fehler im Code an ... https://blogs.msdn.microsoft.com/benjaminperkins/2017/06/28/capture-a-stackoverflowexception-and-make-a -dump-0xc00000fd/ – Grantly

+0

@Grantly bekomme ich keinen Stackoverflow-Fehler. – user1477388

+0

Aber Sie bekommen diesen Ausnahmecode: 0xc00000fd – Grantly

Antwort

1

den folgenden Befehl Ausführen enthüllt den wahren Fehler:

C:\Windows\system32>"C:\Program Files\dotnet\dotnet" C:\inetpub\wwwroot\{YOUR_IIS_SITE_NAME}\{YOUR_PROJECT_NAME}.dll 

Das Ergebnis in der Eingabeaufforderung war die folgende, die mir sagte, ich in meinem Verbindungszeichenfolge einen Fehler hatte:

C:\Windows\system32>"C:\Program Files\dotnet\dotnet" C:\inetpub\wwwroot\www_projectx_com\ProjectX.dll 
info: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[0] 
     User profile is available. Using 'C:\Users\darchual\AppData\Local\ASP.NET\DataProtection-Keys' as key repository and Windows DPAPI to encrypt keys at rest. 
info: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[58] 
     Creating key {70b30c91-49df-45be-95cc-2e681b5cde76} with creation date 2017-12-04 16:34:08Z, activation date 2017-12-04 16:34:08Z, and expiration date 2018-03-04 16:34:08Z. 
info: Microsoft.AspNetCore.DataProtection.Repositories.FileSystemXmlRepository[39] 
     Writing data to file 'C:\Users\darchual\AppData\Local\ASP.NET\DataProtection-Keys\key-70b30c91-49df-45be-95cc-2e681b5cde76.xml'. 

Unhandled Exception: System.ArgumentNullException: Value cannot be null. 
Parameter name: connectionString 
    at Microsoft.EntityFrameworkCore.Utilities.Check.NotEmpty(String value, String parameterName) 
    at Microsoft.EntityFrameworkCore.SqlServerDbContextOptionsExtensions.UseSqlServer(DbContextOptionsBuilder optionsBuilder, String connectionString, Action`1 sqlServerOptionsAction) 
    at ProjectX.Startup.<ConfigureServices>b__4_0(DbContextOptionsBuilder options) in C:\VSO\Avvenire Source\Internal\Project X\ProjectX\Startup.cs:line 35 
    ... truncated for brevity ... 

Einmal gelöst lief die Anwendung einwandfrei!

Auch im Auge behalten, (wenn eine MVC-Core-Anwendung auf IIS-Hosting) Ihre Program.cs zu aktualisieren Datei entsprechend:

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

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

Last, but not least, ich brauchte die Verbindungszeichenfolge zu beheben, indem das Hinzufügen ein neu erstellter SQL-Benutzer (er würde nicht einfach mit integrierter Sicherheit arbeiten):

"ConnectionStrings": { 
    "DefaultConnection": "Server={theserver};Database={thedatabase};MultipleActiveResultSets=true;User Id={theusername};Password={thepassword};" 
}, 

Ref.-Nr. https://stackoverflow.com/a/42363471/1477388