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.编译的项目中 有必须有个 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>
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 ,这个必须对应正确