如何将Blazor WebAssembly核心托管的自包含应用程序部署到IIS

如何将Blazor WebAssembly核心托管的自包含应用程序部署到IIS,iis,blazor,blazor-webassembly,asp.net-core-hosted-services,Iis,Blazor,Blazor Webassembly,Asp.net Core Hosted Services,我开发了一个Blazor WebAssembly应用程序,将在我们内部网上运行Windows 2012的服务器上使用。这是针对.NET5.0核心托管和自包含的。我需要部署到IIS 8.5,并且有一些问题 在IIS中添加网站时,是否将可执行文件和web.config指向根部署目录? 为了让IIS在wwwroot子目录中找到索引文件,我还需要做什么吗? 将此应用程序的部署目录直接放在inetpub下是否合适? 发布任务创建了一个相当大的BlaorDebugProxy目录。这是为了发布,所以我不明白为

我开发了一个Blazor WebAssembly应用程序,将在我们内部网上运行Windows 2012的服务器上使用。这是针对.NET5.0核心托管和自包含的。我需要部署到IIS 8.5,并且有一些问题

在IIS中添加网站时,是否将可执行文件和web.config指向根部署目录? 为了让IIS在wwwroot子目录中找到索引文件,我还需要做什么吗? 将此应用程序的部署目录直接放在inetpub下是否合适? 发布任务创建了一个相当大的BlaorDebugProxy目录。这是为了发布,所以我不明白为什么要创建它。有没有办法防止这种情况发生? 我想使用ServerName\AppName访问应用程序。如果我用“AppName”作为主机名创建站点,这会起作用吗?或者我还需要做其他事情吗? 当我尝试从IIS浏览到该站点时,我收到一个500.19“无法访问请求的页面,因为该页面的相关配置数据无效。”由于该文件是由发布过程创建的,因此我尚未对其进行更改。它是:

<?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=".\AppName.Server.exe" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
    </system.webServer>
  </location>
</configuration>
<!--ProjectGuid: 60862cf1-bea8-48f4-8ae9-270f2f537927-->
你知道为什么这不起作用吗

请注意,这是使用自包含模型。 此外,我已确保目录已授予此应用程序的应用程序池标识的完全权限

下面的答案和假设的副本都是指安装框架。然而,我认为自包含模型的全部要点是它不依赖于已安装的框架

我进行了广泛的搜索,看到了许多涉及这些问题的参考文献,但没有具体说明如何让IIS(尤其是旧版本)承载自包含模型。Microsoft页面讨论了文件的优点和缺点以及如何创建文件,但没有详细介绍如何托管文件或我上面列出的其他问题

有谁成功地做到了这一点,谁能提供一些指导


谢谢

首先,请确保服务器上已安装Asp.net Core IIS主机包安装程序。 此外,您的web应用程序在IIS中运行时所使用的标识应具有对网站根文件夹的完全访问权限。尝试授予IUSR帐户对该物理路径的完全控制权。 最后,请参考以下链接,以在IIS中托管基于核心的web应用程序。
如果问题仍然存在,请随时通知我。

首先,请确保服务器上已安装Asp.net Core IIS主机包安装程序。 此外,您的web应用程序在IIS中运行时所使用的标识应具有对网站根文件夹的完全访问权限。尝试授予IUSR帐户对该物理路径的完全控制权。 最后,请参考以下链接,以在IIS中托管基于核心的web应用程序。
如果问题仍然存在,请随时通知我。

我不明白在部署自包含应用程序时为什么需要安装.Net主机包。我认为这意味着.Net Core将包含在我的应用程序中,因此我不需要在系统上也安装它。@DavidBowser.Net Core包含在其中,但如果没有它,IIS对它一无所知,因此,它不知道需要将您的应用程序集成到它的管道中,并将调用转发到itI。我不理解为什么在部署自包含应用程序时需要安装.Net主机包。我认为这意味着.Net Core将包含在我的应用程序中,因此我不需要在系统上也安装它。@DavidBowser.Net Core包含在其中,但IIS对它一无所知,因此它不知道需要将您的应用程序集成到它的管道中并向它转发调用