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

时间:2020-08-17 21:47:17

标签: iis blazor blazor-webassembly asp.net-core-hosted-services

我已经开发了Blazor WebAssembly应用程序,该应用程序将在我们的Intranet上运行Windows 2012的服务器上使用。这是针对.Net 5.0 Core托管和自包含的。我需要部署到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-->

有什么想法为什么不起作用?

请注意,这是使用SELF-CONTAINED模型的。 另外,我确保目录已授予对此应用程序的“应用程序池标识”的完全权限。

下面的答案和可能存在的重复之处均指安装框架。但是,我认为独立模型的全部要点是它不依赖于已安装的框架。

我已经进行了广泛的搜索,看到许多涉及这些问题的参考文献,但没有任何内容专门说明如何使IIS(尤其是较旧的版本)托管独立模型。 Microsoft页面讨论了优缺点以及如何创建文件,但没有有关如何托管它们或我上面列出的其他问题的详细信息。

有人成功完成了这项工作,可以提供一些指导吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

首先,请确保服务器上已安装Asp.net Core IIS Hosting Bundle installer
https://dotnet.microsoft.com/download/dotnet/5.0
enter image description here
此外,您的Web应用程序在IIS中运行的身份应具有对网站根文件夹的完全访问权限。尝试授予IUSR帐户对该物理路径的完全控制权。
最后,请参考下面的链接以在IIS中托管Core-based Web应用程序。
https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/?view=aspnetcore-3.1
随时让我知道问题是否仍然存在。