Plesk部署ASP.NET 4.8站点突发Version string格式错误求解决方案
根因定位
从你提供的堆栈跟踪可以明确,该报错与SQL数据库无关,是ASP.NET站点编译阶段解析编译器版本字符串失败触发的异常,问题根源在你web.config文件中的<system.codedom>配置节点。
Plesk服务器近期大概率进行了.NET Framework安全补丁更新,新版本的运行时对版本字符串的校验更加严格,导致你之前可兼容的不完整版本号配置突然失效。
解决方案
方案1(推荐):直接删除整个<system.codedom>节点
ASP.NET 4.8已经内置了默认的C#/VB编译器配置,你配置中的<system.codedom>是早期.NET Framework版本的遗留配置,完全不需要额外配置。你可以直接删除以下整段内容:
<system.codedom> <compilers> <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <providerOption name="CompilerVersion" value="v4" /> <providerOption name="WarnAsError" value="false" /> </compiler> <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" warningLevel="4" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <providerOption name="CompilerVersion" value="v3.5" /> <providerOption name="OptionInfer" value="true" /> <providerOption name="WarnAsError" value="false" /> </compiler> </compilers> </system.codedom>
方案2:修复不完整的版本号
如果你需要保留该配置,只需将C#编译器的CompilerVersion属性值从v4修改为完整版本号v4.0即可,修改后的对应配置如下:
<providerOption name="CompilerVersion" value="v4.0" />
验证步骤
修改web.config保存后,站点会自动重启,清理浏览器缓存后重新访问即可恢复正常。
内容的提问来源于stack exchange,提问作者Muneer
相关产品推荐
相关产品推荐

