正如已经指出/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
在Web浏览器中用替换http://localhost:64195/api/products
。
现在,Web API将显示为:
出于挑衅,我尝试删除package
Visual Studio解决方案的整个目录。
一旦我(重新)构建了它,它就会自动而无声地重新创建。
最后但并非最不重要的是,这里是重现该错误的代码:http :
//schulze.000webhostapp.com/vs/SrvrErr-reproduce.zip(最初来自
https://github.com/aspnet/AspNetDocs/tree/master/aspnet / web-api / overview / advanced /从a-net-client / sample / server / ProductsApp调用a-web-api-)