.net 7 部署到IIS上
1. 首先确定windows下安装iis, 如何安装网上查。
2. 要安装 Windows Server Hosting ,如果iis新安装,则直接安装,如果是不确定有没有安装,则IIS 点开网站 ,功能视图->模块,查看有没有“ASPNETCoreModuleV2” ,如果没有则必须安装,下载地址:https://dotnet.microsoft.com/zh-cn/download/dotnet/thank-you/runtime-aspnetcore-7.0.13-windows-hosting-bundle-installer ,也可以到官网 https://dotnet.microsoft.com/zh-cn/download/dotnet/7.0 ,然后看右侧 ASP.NET Core 运行时 下面 windows 这里 Hosting Bundle ,这个下载就是安装程序
3.安装完成 就可以在 IIS 模块中看到“ASPNETCoreModuleV2”
4.IIS添加 一个站点,然后回自动增加一个关联的的应用程序池 (Application Pools), 右键 基本设置(Basic Settings),.Net clr 版本 : 非托管管理(No Managed Code) ,管理通道模式(Managed pipeline mode) :集成(Integrated)
4.编译的项目中 有必须有个 web.config文件 ,具体内容如下, 其中的 processPath=".\项目名称.exe" ,这个iis核心 ,且从hostingModel=inprocess 代表进程内部署(进程名称:w3wp.exe)
<?xml version="1.0" encoding="utf-8"?> <configuration> <location path="." inheritInChildApplications="false"> <system.webServer> <handlers> <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" /> </handlers> <aspNetCore processPath=".\webTest21.exe" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" /> </system.webServer> </location> </configuration>
具体的 官方文档: https://github.com/dotnet/AspNetCore.Docs/blob/main/aspnetcore/host-and-deploy/iis/web-config.md
5. 报错 “The app couldn't be found. Confirm the app's main DLL is present. Single-file deployments are not supported in IIS.” ,意思 IIS 不支持以单文件部署,
具体在vs 2022 项目中, 右键 发布 中 设置=>文件发布选项 => “生成单个文件” 勾选移除
6."Application '/LM/W3SVC/2/ROOT' with physical root 'F:\Test\publish\webTest21\' hit unexpected managed exception, exception code = '0xe0434352'." ,
如果vs发布的 目标运行时若是win-86,则网站的应用连接池 中高级设置: "启用32位用程序":改成 true , 若是win-64,则改成 false ,这个必须对应正确
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!