大家好,我是第八哥,一个有十年.NET开发经验的老司机。今天,我来分享如何把ASP.NET Core MVC应用顺利部署到IIS服务器。很多朋友初次尝试时,常常被IIS的错误问题搞得头大,别担心,我会一步步带你们搞定。
部署前的准备工作
俗话说:“兵马未动,粮草先行。“首先,我们要确保环境到位,否则后续会报错。
1、打开Windows的“添加功能”,勾选安装IIS服务器相关功能。

2、安装ASP.NET Core的运行时环境,确保IIS的模块中出现AspNetCoreModuleV2。

步骤1:发布ASP.NET Core MVC应用
在Visual Studio中,右击项目选“发布”。目标选“文件夹”,路径别用中文。配置为Release模式,发布后生成一个完整文件夹。

关键点:勾选“删除现有文件”,避免旧文件残留。发布后,测试本地运行dotnet YourApp.dll,确保无报错。
步骤2:配置IIS服务器
打开IIS管理器,右击“网站”选择“添加网站”,网站名称随意,物理路径指向发布的文件夹,端口用80或自定义端口,避免和已有的端口冲突,这里我使用的是8081端口,因为IIS有个默认的网站,使用的是80端口;如果你也想使用80端口,那就把默认的网站给停掉。

步骤3:设置应用程序池
打开“应用程序池”,找到我们刚刚添加的站点池,右击打开基本设置,在.NET CLR版本处选择无托管代码,因为ASP.NET Core是自托管的。

标识用ApplicationPoolIdentity,启动模式设为AlwaysRunning。这能提升性能,减少首次加载延迟。如果不是,可以在高级设置中进行修改。
启动模式有两种,区别如下:
AlwaysRunning:应用程序池始终保持预启动状态,减少首次请求延迟,但会增加内存占用。适用于高并发场景。
OnDemand:首次请求时启动应用程序池,资源利用率更低,适合访问频率较低的场景。
步骤4:测试与验证部署
在浏览器输入站点URL,比如http://localhost:8081。如果首页正常显示,那么恭喜你!但是常见的问题往往就在这时候冒头,检查事件查看器日志通常能快速定位错误源。

常见问题1:500.19错误
浏览器查看时,提示HTTP 错误 500.19 - Internal Server Error
,通常是因为IIS无法加载应用程序的依赖项导致的,微软官网下载对应版本的Hosting Bundle进行安装,完成后检查IIS的模块,确保AspNetCoreModuleV2已加载。没看到?重启IIS试试。
常见问题2:405或500错误
应用部署后,遇到PUT或DELETE请求时,通常会出现这个错误,原因是IIS默认安装的WebDav模块阻止了这些请求。
我们可以打开项目的web.config文件,在<system.webServer>
节点下添加如下代码:
<modules runAllManagedModulesForAllRequests="true">
<remove name="WebDAVModule"/> <!-- 移除冲突模块 -->
</modules>
常见问题3:Access to the path is denied
当遇到IIS错误Access to the path 'C:\Windows\TEMP\ASPNETCORE_xxx.tmp' is denied时,通常是由于未启用加载用户配置文件导致的临时文件创建失败。
在应用程序池中找到我们的站点池,右击打开高级设置,在进程模型部分,将加载用户配置文件
设置为True
。
总结与优化建议
部署过程其实不难,关键在细节。遇到问题时不要慌,多用日志排错。你们还遇到过哪些问题,欢迎留言交流,下期见。
评论