IIS配置后浏览网页显,页面显示“未能找到 CodeDom 提供程序类型“Microsoft.CodeDom.Providers.DotNetCompilerPlatfo…”
我在Win11+VS2022+CS开发“asp.net web 项目”,开发环境下测试网页正常,配置IIS,在IIS下浏览网页提示下面信息:
“页面显示未能找到 CodeDom 提供程序类型“Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”
按照网上提示,进行检查:
检查项目引用:确保您的项目正确引用了 Microsoft.CodeDom.Providers.DotNetCompilerPlatform 组件。您可以在 Visual Studio 的项目引用中检查该组件是否已正确添加。
确认程序集存在:验证在您的开发环境中是否存在 Microsoft.CodeDom.Providers.DotNetCompilerPlatform 这个程序集,并且版本号为 2.0.1.0。您可以在程序集缓存目录(通常位于 C:\Windows\Microsoft.NET\Framework\v4.0.30319 或 C:\Windows\Microsoft.NET\Framework64\v4.0.30319)中查看是否存在该程序集。
重新安装 NuGet 包:如果您是通过 NuGet 引入该组件的,可以尝试删除并重新安装 Microsoft.CodeDom.Providers.DotNetCompilerPlatform NuGet 包,确保是最新版本。
检查配置文件:检查您的应用程序的配置文件(如 web.config)是否正确配置了 CodeDom 提供程序类型,确保配置与您的开发环境一致。
重新启动 IIS:尝试重新启动 IIS 服务,以确保任何配置更改都得到正确应用。
清理临时文件:清除应用程序的临时文件夹,可以尝试删除 Temp 文件夹或者清除 ASP.NET 缓存。
未能发现和解决问题,NuGet重新安装“Microsoft.CodeDom.Providers.DotNetCompilerPlatform”,包括升级版本,仍不能解决问题,
以上过程在开发环境下一直能正常测试浏览。
开发环境下打开Web.config
整个删除<system.codedom>段代码,如上图,保存。
打开PM
执行NuGet命令:Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
重新编译项目后,检查Web.config,已重新增加了删除的代码: