MVC项目本地正常,部署到GoDaddy后提示无法加载System.Web.Mvc程序集
解决GoDaddy虚拟主机MVC程序集加载失败的问题
嘿,我之前在GoDaddy部署MVC项目时也踩过这个坑!这种错误大多是程序集没部署全、版本不匹配或者主机环境缺失依赖导致的,给你几个亲测有效的解决办法:
强制将MVC核心程序集打包到bin目录
本地开发时我们可能依赖系统GAC里的MVC程序集,但GoDaddy的虚拟主机不一定预装了你用的5.2.3.0版本。右键项目里的System.Web.Mvc引用,在属性面板把复制本地改成True——这样编译后,MVC程序集会被自动打包到项目的bin文件夹,上传主机时就能一起部署过去。核对web.config里的程序集绑定配置
你提到的runtime配置片段,要确保System.Web.Mvc的版本号和项目引用的完全一致,同时添加正确的版本重定向规则,避免版本冲突:<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" /> </dependentAssembly> <!-- WebGrease等其他依赖的绑定配置也要对应项目使用的版本 --> </assemblyBinding> </runtime>确保所有关联依赖都部署完整
错误提示里提到的“依赖项之一”很可能是WebGrease、Microsoft.Web.Infrastructure这类配套组件,同样把这些引用的复制本地设为True,避免主机环境缺失这些文件。清理缓存后重新发布
有时候本地编译缓存会导致部分文件没更新,先右键项目选择「清理」,再重新生成,最后用发布工具重新打包上传,确保主机上的bin目录里所有需要的程序集都是最新的。检查主机的.NET框架版本
登录GoDaddy控制面板,确认你的站点应用池设置的.NET版本和项目的目标框架完全一致(比如项目用.NET 4.5,主机就别选.NET 4.0),版本不匹配也会触发程序集加载失败。
内容的提问来源于stack exchange,提问作者Murat Güzel
相关产品推荐
相关产品推荐

