Wie bereits angemerkt /programming/32780315#34391473 , die schnelle Lösung den Paket - Manager zu verwenden ist,
Tools
> Nuget Package Manager
> Package Manager Console
, laufen
Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r
Eine alternative Lösung (die Ihre Pakete automatisch und unbeaufsichtigt neu erstellt, wenn sie fehlen) besteht darin, ein Attribut aus der Web.config
Datei Ihres Projekts zu entfernen .
( Web.config
befindet sich im selben Verzeichnis wie Ihre .csproj
Datei.)
Öffnen Sie die Web.config
Datei in einem Texteditor (oder in Visual Studio).
- Im Tag configuration
> system.codedom
> compilers
> compiler language="c#;cs;csharp"
, entfernen Sie vollständig das type
Attribut.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!-- ... -->
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs"
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701"/>
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb"
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+"/>
</compilers>
</system.codedom>
</configuration>
Kurz gesagt, entfernen Sie die Zeile, die mit beginnt type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft
.
(Vermutlich funktioniert das gleiche Update sowohl für Visual Basic als auch für Csharp, aber ich habe es nicht ausprobiert.)
Visual Studio kümmert sich um den Rest. Nicht mehr Server Error in '/' Application
.
In dem Beispielcode, den ich oben in der Zip-Datei angegeben habe, erhalten Sie jetzt, HTTP Error 403
wenn Sie Ctrl+ drücken F5.
Versuchen Sie, http://localhost:64195
in Ihrem Webbrowser durch zu ersetzen http://localhost:64195/api/products
.
Die Web-API wird jetzt wie folgt angezeigt:
Als Provokation habe ich versucht, das gesamte package
Verzeichnis meiner Visual Studio-Lösung zu entfernen .
Es wurde automatisch und stillschweigend neu erstellt, sobald ich es (neu) gebaut habe.
Zu guter Letzt gibt es hier Code, der den Fehler reproduziert:
http://schulze.000webhostapp.com/vs/SrvrErr-reproduce.zip (Ursprünglich von
https://github.com/aspnet/AspNetDocs/tree/master/aspnet / Web-API / Übersicht / Erweitert / Aufrufen einer Web-API von einem Netz-Client / Beispiel / Server / ProdukteApp )