Як вже було зазначено /programming/32780315#34391473 , швидке виправлення використовувати менеджер пакетів,
Tools
> Nuget Package Manager
> Package Manager Console
, щоб запустити
Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r
Але альтернативне рішення (яке автоматично і безшумно відтворює ваші пакунки, якщо вони відсутні) - це видалити атрибут Web.config
файлу вашого проекту .
( Web.config
знаходиться в тому ж каталозі, що і ваш.csproj
файл.)
Відкрийте Web.config
файл у текстовому редакторі (або всередині Visual Studio).
- У тезі configuration
> system.codedom
> compilers
> compiler language="c#;cs;csharp"
, повністю видалити type
атрибут.
<?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>
Словом, видаліть рядок, з якого починається type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft
.
(Імовірно, те саме виправлення працює як для Visual Basic, так і для Csharp, але я його не пробував.)
Visual Studio подбає про відпочинок. Не більшеServer Error in '/' Application
.
У прикладі коду, який я вказав у zip-файлі вище, ви отримаєте, HTTP Error 403
коли натисніть Ctrl+ F5.
Спробуйте замінити http://localhost:64195
у веб-переглядачі на http://localhost:64195/api/products
.
Тепер веб-API відображається як слід:
Як провокацію я спробував видалити весь package
каталог мого рішення Visual Studio.
Це було автоматично і мовчки відтворено, як тільки я (повторно) створив його.
Не в останню чергу, ось код, який відтворює помилку:
http://schulze.000webhostapp.com/vs/SrvrErr-reproduce.zip (спочатку з
https://github.com/aspnet/AspNetDocs/tree/master/aspnet / web-api / огляд / розширений / call-a-web-api-from-a-net-client / sample / server / ProductsApp )