折腾了三天三夜,终于搞懂 asp.net iis 本地部署 的那些坑,亲测有效
别再去买那些几百块的教程了,全是复制粘贴。
今天这篇,是我用真金白银和无数个熬夜夜晚换来的。
专门解决 asp.net iis 本地部署 时各种报错、白屏、连不上数据库的头疼问题。
如果你正对着 IIS 管理器发呆,觉得头大,往下看。
这篇文不整虚的,只讲怎么把项目跑起来。
先说个扎心的事实。
很多人第一步就错了,直接装个 IIS 就完事。
结果启动网站,浏览器打开一片空白,或者 500 错误。
我当年也是这么过来的,查了百度三天,全是废话。
其实核心就两个问题:环境没配齐,权限没给够。
第一步,检查你的 .NET 版本。
这是最容易被忽略的坑。
你的代码是用 .NET Framework 4.8 写的,还是 .NET Core 3.1?
如果是老项目,必须装对应的 Framework 运行库。
别以为 Windows 自带就能跑,很多时候是精简版系统,缺胳膊少腿。
去微软官网下载对应的安装包,别下错了架构,x64 还是 x86 要看清楚。
这一步搞不定,后面全是白搭。
第二步,配置 IIS 应用程序池。
这点至关重要,我吃过不少亏。
新建网站时,默认的应用程序池是 Integrated 模式,.NET 版本选无托管代码。
如果你的项目是 Framework 4.0+,必须改成 v4.0。
更关键的是,把“启用32位应用程序”改成 True。
很多老系统依赖的 COM 组件或者数据库驱动,只认 32 位。
改成这个后,重启 IIS,你会发现很多奇怪的问题消失了。
别问为什么,问就是经验教训。
第三步,文件夹权限给足。
这一步新手最容易忽略。
IIS 用户默认没有权限读写你的网站目录。
右键网站文件夹,属性,安全。
添加 IIS_IUSRS 用户,赋予完全控制权限。
特别是上传文件夹,必须单独给权限。
不然图片上传上去,保存失败,日志里还找不到错误原因。
我有一次排查了一周,最后发现只是权限没开,尴尬得想撞墙。
第四步,数据库连接字符串。
本地部署时,连接字符串里的 Server 地址要注意。
别写 localhost,有时候解析会有问题。
写 127.0.0.1 或者 (local)。
如果是 SQL Server Express,实例名要对上。
还有,防火墙记得开端口,或者暂时关闭防火墙测试。
别小看这一步,很多网络不通的问题,都是防火墙在作祟。
最后,发布模式的选择。
发布时,选“框架依赖”还是“独立部署”?
如果是 Framework 项目,选框架依赖,体积小,但依赖服务器环境。
如果是 Core 项目,建议独立部署,自带运行时,到哪都能跑。
发布后,把文件拷到 IIS 目录,别直接解压,容易乱。
最好用 FTP 或者远程桌面复制过去,保持目录结构清晰。
我见过太多人,花几千块找人部署,结果人家只是改了个配置文件。
这种技术活,自己搞懂了,以后省下的钱都能买好几台服务器了。
asp.net iis 本地部署 其实没那么难,难的是你没耐心看日志。
遇到报错,先看 Event Viewer,再看 IIS 日志。
别一报错就百度,大部分错误信息已经写得很清楚了。
总结一下,环境配对,权限给够,日志看勤。
这三点做到了,基本能解决 90% 的问题。
剩下的 10%,那是代码本身的 Bug,跟部署没关系。
希望这篇粗糙但实用的经验,能帮你省下几个晚上的睡眠时间。
别犹豫,照着做,不行再来找我吐槽。
毕竟,我也曾在那片报错的海洋里,绝望地游过。