2016-05-26 9 views
0

Ich versuche, eine Webanwendung noch auf ASP.NET RC1 (DNX) zu IIS bereitzustellen. Ich habe die gesamte Microsoft-Dokumentation durchgesehen, aber ich habe ein Problem. Ich bekomme diesen Fehler, wenn die Anwendung gestartet wird:DNX (ASP.NET Core RC1) Webanwendung - kann in IIS nicht hosten

Application startup exception: System.IO.FileLoadException: Could not load file or assembly 'Web' or one of its dependencies. General Exception (Exception from HRESULT: 0x80131500) 
File name: 'Web' ---> Microsoft.Dnx.Compilation.CSharp.RoslynCompilationException: Startup.cs(104,39): DNX,Version=v4.5.1 error CS0012: The type 'Func<,>' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 

Was bedeutet das? Ich bin in der Lage, auf IIS auf meinem lokalen Computer bereitzustellen, auf dem ich die Entwicklung ohne irgendwelche Probleme ausgeführt habe. Nur der Server mit IIS funktioniert jedoch nicht.

Wie gehe ich vor, um diesen Fehler zu beheben? Der Server ist auf Windows Server 2008 R2 und mein lokaler Computer ist Windows 7, wenn das hilft.

+0

Haben Sie DNVM auf Ihrem Server installiert und die korrekte Laufzeit von dnx? – Tseng

+0

@Tseng Ich glaube nicht, dass ich das tue, wie kann ich das überprüfen? Ich habe aber die DNX-Laufzeit. – painiyff

Antwort

0

Ich konnte dieses Problem mithilfe einer Problemumgehung beheben. Offenbar ist es ein Problem mit dem Publish Befehl von Visual Studio 2015. Es sieht so aus, als hätte es keine Möglichkeit, in Nuget-Paketen zu veröffentlichen. Dies bedeutet, dass der Veröffentlichungsbefehl die Quelldateien ausgibt. Daher müssen die Dateien noch vom Server kompiliert werden.

Ich habe nicht herausgefunden, wie der Server die Dateien korrekt kompilieren lassen. Ich konnte es jedoch lösen, indem ich den Code zuvor nur in Nuget-Pakete kompilierte. Dies kann mithilfe des Befehlszeilentools dnu erfolgen.

dnu publish --out %folder% --no-source --include-symbols --runtime dnx-clr-win-x86.1.0.0-rc1-update1 --configuration Release 

Der wichtige Teil ist die --no-source-Option, die in Nuget Pakete verpacken wird.

Verwandte Themen