无法将默认Blazor PWA项目托管到IIS

问题描述

我使用Visual Studio 2019创建了一个新的Blazor项目(看图片

我检查了https,托管的ASP.NET Core和渐进式Web应用程序

Default blazor webassembly app project

之后,Visual Studio创建了客户端项目,服务器项目和共享类项目。 我确保该项目没有错误,因此我将其编译并在Visual Studio上运行。

之后,我要将其托管到IIS中,所以我进入服务器项目,右键单击,发布,然后将所有内容发布到我的发布文件夹中。

一切正常,现在我进入IIS,添加站点,并选择之前生成的发布文件夹的路径(我使用80端口进行此测试)。

我还向Web配置授予IIS_IUSRS权限。

现在,我在浏览器中输入localhost:80,然后进入无限循环,等待页面加载,但页面永远不会加载。

浏览器中不会显示任何错误

所以我进入IIS管理器,并说Visual Studio生成的Web配置被认为是错误的。

我的webconfig.xml:

<?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="dotnet" arguments=".\Funzia.Server.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
    </system.webServer>
  </location>
</configuration>
<!--ProjectGuid: 4872489F-5CAD-4DF4-BAFC-9D401F53BF48-->

我已经安装了ASP.NET Core Runtime捆绑包,也安装了dotnet-hosting-2.2.2。

实际上,我可以轻松地托管Server App blazor,零问题,但是当我尝试发布Blazor WebAssembly App时,它无法正常工作。

其他有用的信息:

模块不丢失。

enter image description here

dotnet --info的输出

.NET Core SDK (che rispecchia un qualsiasi file global.json):
 Version:   3.1.301
 Commit:    7feb845744

Ambiente di runtime:
 OS Name:     Windows
 OS Version:  10.0.18363
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\3.1.301\

Host (useful for support):
  Version: 3.1.5
  Commit:  65cd789777

.NET Core SDKs installed:
  3.1.300 [C:\Program Files\dotnet\sdk]
  3.1.301 [C:\Program Files\dotnet\sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.1.18 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.2.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.18 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.2.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 3.1.4 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 3.1.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.1.18 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.2.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 3.1.4 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 3.1.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.WindowsDesktop.App 3.1.4 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
  Microsoft.WindowsDesktop.App 3.1.5 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

我还尝试添加自动签名的证书并尝试通过https访问,但是我遇到了与使用http相同的结果。

更进一步,我还尝试通过控制台发布项目,我认为Visual Studio可能会创建损坏的Web配置文件,但创建的文件是相同的。

我发现其他一些用户也遇到了此问题,但是我还没有找到任何解决方案。

有什么建议吗?

解决方法

您可以尝试以下步骤在iis上发布Blazor WebAssembly应用程序。我测试了它可以在我的PC上正常工作。

要首先在iis中发布blazor应用程序,请确保您已在iis功能下安装。 enter image description here

  • .NET Core托管包
  • ASP.NET Core运行时

根据您的版本下载并安装Runtime and Hosting软件包。安装主机捆绑包之后,别忘了重启机器。

现在,查看位于屏幕左侧的“解决方案资源管理器”选项卡。右键单击解决方案的Server项目BlazorDDL.Server。单击发布。 enter image description here

您将看到一个新屏幕。在左侧菜单中,单击文件夹。选择要将Blazor应用程序发布到的文件夹。单击“发布”。如果没有错误,则您的应用程序将成功发布。

enter image description here

接下来,您将必须配置IIS。 enter image description here

并且您必须配置应用程序池。您会在左侧面板中找到它。双击池ankisite。将出现“编辑应用程序池”窗口。从“ .NET CLR版本”下拉列表中,选择“无托管代码”选项。 enter image description here

,

我通过将应用程序托管到Azure来解决了这个问题。

我认为我的自动签名证书有问题。 此外,我的Windows功能窗口中缺少某些功能。