2017-03-23 2 views
2

Ich habe einen älteren Server, den ich alle neuesten Core Web-Hosting-Module für Internet Information System (IIS) installiert habe. Der Server sollte auf dem neuesten Stand sein.Hosting Asp.Net Core in IIS 7

Aus irgendeinem Grund habe ich die folgende Fehlermeldung:

HTTP Error 500.19 - Internal Server Error The configuration section 'aspNetCore' cannot be read because it is missing a section declaration.

Die web.config wie folgt:

<?xml version="1.0" encoding="utf-8"> 
<configuration> 
    <system.webServer> 
      <handlers> 
       <add name="aspNetCore path="*" verb="*" 
        modules="AspNetCoreModule" resourceType="Unspecified" /> 
      </handlers> 
      <aspNetCore processPath="dotnet" arguments=".\LicenseManager.dll" 
       stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" /> 
    </system.webServer> 
</configuration> 

Ich bin sicher, dass die Anwendung Pool richtig mit der richtigen Berechtigungen konfiguriert ist, In das Verzeichnis wird auch der Anwendungspool auf No Managed Code gesetzt und die Bindungen wurden konfiguriert.

Die documentation gab auch an, dass es tatsächlich kompatibel ist und von Windows Server 2008 R2 unterstützt wird, das IIS 7.0 enthält.

Ich habe ihre Befehle ausgeführt, irgendwelche Gedanken, warum dies nicht veröffentlichen wird?

+0

Ich weiß nicht, über Asp.Net Kern, aber in der Regel haben Sie eine Konfigurationsabschnittshandler zu registrieren. Wenn Sie web.config einen nicht standardmäßigen Abschnitt hinzufügen, finden Sie unter dieser Antwort http://stackoverflow.com/a/20066794/21336 und verwandten Fragen eine Idee – devio

+0

@DouglasThomas Es ist Windows Server 2008 R2, die Dokumentation sagt, dass es funktioniert. Das ist ein großartiger Link, aber ich habe schließlich auf Windows Server 2012 installiert und ein Ticket mit Microsoft geöffnet, um zu erklären, warum es nicht richtig funktioniert. – Greg

+0

@Greg Sind Sie sicher, dass es unter Windows 2008 R2 funktionieren kann? Ich habe getestet, um es auf meinem Windows Server 2008 zu installieren, und es hat nicht funktioniert. Der Fehler zeigt inkompatible Version Windows Server 2012 jetzt und es funktioniert ohne Probleme. –

Antwort

2

Im Fall könnte es auf einem 2008R2, IIS7.5 aber mit einer ASP.NET-Core-Hilfe gebaut gegen .NET 452 Ich habe diese:

<aspNetCore 
    requestTimeout="00:20:00" 
    processPath=".\MyProject.exe" arguments="" 
    stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" 
    forwardWindowsAuthToken="true"> 
    <environmentVariables> 
    <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="development" /> <!-- value could be "development", "staging" or "production"--> 
    </environmentVariables> 
</aspNetCore> 

Außerdem, wenn Sie auf IIS gehen, tun Sie tatsächlich sehen, die .NET-Core-Modul installiert:

enter image description here

Und können Sie mit den Konfigurationseditor web.config Inhalt durchsuchen?

Update: Sie haben Ihre Frage Zugabe der“geändert, so dieses Bit in Ich Entfernen meine Antwort

+0

Was ist mit rohen Kern, ohne ein .net als nicht verwalteten Code zu kompilieren. – Greg

+0

Ich habe das im Moment nicht ausgeführt, also kann ich es nicht sicher sagen, aber ich erwarte, dass es ähnlich ist: Sie müssen ein AspNetCoreModule installiert haben und unter IIS laufen, Sie werden immer noch müssen in der Lage sein, die web.config über IIS "Configuration Editor" zu analysieren, der Hauptunterschied sollte sein, dass mit dem vollständigen .NET processPath/arguments direkt "myexe"/"" sein wird, während es gegen .NET CORE kompiliert wird "dotnet"/"mydll.dll". In meinem Fall denke ich "dotnet mydll.dll" funktioniert gut, wenn unter Kommandozeile gestartet? Wenn ja, ist es nur eine Frage der Konfiguration von IIS. – Daboul

+0

Ich habe das Modul, was ist komisch, es ist fast wie IIS Drosseln auf der Konfig. – Greg