.net 7 部署到IIS上

发布时间 2023-11-03 22:15:24作者: 贝壳11

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