.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 ,这个必须对应正确

posted @   贝壳11  阅读(1196)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示