feg*_*ter 24 c# iis-8 asp.net-web-api2
我有一个相当简单的C#WebAPI2项目,它在本地运行,但在远程机器(Windows Server 2012 R2 Standard)上发布到IIS后,网页显示以下内容(将customErrors设置为"Off"后):
'/'应用程序中的服务器错误.编译错误说明:在编译服务此请求所需的资源期间发生错误.请查看以下特定错误详细信息并相应地修改源代码.编译器错误消息:编译器失败,错误代码为-2146232576.
如果我抓取详细的编译器输出并在IIS服务器上运行它,我会收到一条智能屏幕错误消息:
此应用无法在您的PC上运行.要查找适用于您的PC的版本,请咨询软件发行商.
我猜它与编译器版本有关,但自上次发布以来没有任何变化.
有任何想法吗?
Ami*_*neh 28
编译错误
描述:编译服务此请求所需的资源时发生错误.请查看以下特定错误详细信息并相应地修改源代码.
编译器错误消息:编译器失败,错误代码为-2146232576.
升级一些NuGets后我遇到了这个问题,并通过以下步骤解决了.
第1步:从中删除这些NuGet包NuGet Package Console
PM> Uninstall-package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
PM> Uninstall-package Microsoft.Net.Compilers
Run Code Online (Sandbox Code Playgroud)
第2步:system.codedom在关闭</system.data>标记之前添加这些行Web.config
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701"></compiler>
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+"></compiler>
</compilers>
</system.codedom>
Run Code Online (Sandbox Code Playgroud)
PS:过了一会儿,我们<system.codedom>完全删除了,修复了其他错误.
Rom*_*nev 25
罪魁祸首是Microsoft.Net.Compilers包,用于支持项目中的现代C#语法/功能(版本6.0,7.0),特别是Razor视图.根据其版本,该程序包要求在相关计算机上安装完整.NET框架的特定最低版本.
例如,2.2.0包需要.NET 4.6+.即使您的项目针对的是.NET 4.5.2,您可能在开发计算机上安装了最新的.NET,一切都很顺利.远程部署机器只安装了.NET 4.5.2,当您的ASP.NET应用程序尝试在运行时编译资源(例如视图)时,您会收到错误-2146232576.
你的选择:
如果您绝对需要在项目中使用新的C#功能 - 将最新的.NET框架安装到远程计算机上.
如果您对可用的现代C#功能感到满意 - 将Microsoft.Net.Compilers包降级到只需要远程计算机上的框架的版本.例如,版本1.3.2只需要.NET 4.5.
如果您根本不需要上述功能,只需从项目中删除Microsoft.Net.Compilers和Microsoft.CodeDom.Providers.DotNetCompilerPlatform(Roslyn CodeDom提供程序)包.
| 归档时间: |
|
| 查看次数: |
17827 次 |
| 最近记录: |