部署.NET 4.0代码至IIS 2.0服务器时App_Code.dll加载失败求助
解决 "Could not load file or assembly 'App_Code'..." 错误
这个错误本质很清晰:你本地基于.NET 4.0编译的App_Code.dll,服务器上的IIS运行环境却在尝试用更低版本的.NET runtime(比如2.0/3.5)去加载它,版本不兼容就触发了这个报错。下面给你几个一步步排查解决的方案:
1. 先把应用池的.NET版本切对
这是最常见的问题,操作起来也简单:
- 打开服务器上的IIS管理器,找到你部署的网站对应的应用池
- 右键应用池 → 选择「高级设置」
- 在弹出的窗口里找到**.NET Framework版本**这一项,确认是不是
v4.0.30319(这是.NET 4.0的正式版本号) - 如果当前显示的是
v2.0.50727(对应.NET 2.0/3.5),直接改成v4.0.30319,点击确定 - 最后重启一下应用池和网站,再访问试试
2. 确认服务器装了.NET Framework 4.0
要是应用池选了4.0但还是报错,大概率是服务器根本没装.NET 4.0:
- 去服务器的「控制面板 → 程序和功能」,翻一翻有没有
.NET Framework 4.0 Client Profile或者.NET Framework 4.0 Full的条目 - 要是没有,下载对应服务器系统的.NET 4.0安装包(比如Windows Server 2008要找适配的版本)装上,装完重启服务器再试
3. 给Web.config加个强制运行时的配置
有时候服务器会默认降级运行时,咱们可以在Web.config里明确指定:
- 打开你部署的Web.config文件,找到根节点
<configuration>,添加或者修改<startup>节点:
<startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> </startup>
这个配置会告诉IIS,必须用.NET 4.0来运行这个站点,避免自动降级
4. 重新检查本地发布的编译设置(兜底方案)
如果上面都试过还不行,可能是你本地发布的时候不小心用了更高版本的.NET:
- 打开本地Visual Studio,右键你的项目 → 选择「属性」→ 切换到「生成」选项卡
- 确认「目标框架」是
.NET Framework 4.0,别选成4.5及以上的版本 - 先清理解决方案(菜单→生成→清理解决方案),然后重新发布,确保所有输出的程序集都是纯.NET 4.0的
内容的提问来源于stack exchange,提问作者user1802212
相关产品推荐
相关产品推荐

