无法托管 Blazor 应用程序

Posted

技术标签:

【中文标题】无法托管 Blazor 应用程序【英文标题】:Unable to host Blazor application 【发布时间】:2021-10-17 15:36:18 【问题描述】:

在我的本地 Windows 10 计算机上将应用程序作为 IIS 应用程序托管时,我无法使 Blazor 应用程序正常工作。该应用程序非常简单,只有一个页面和最少的组件 - 甚至比提供的默认 Blazor 应用程序更简单。

这些是我的步骤:

点击发布应用 选择文件夹,注意它是...\bin\Release\net5.0\browser-wasm\publish\ 打开 IIS,导航到默认网站 右键单击默认网站并选择添加应用程序 以上路径选择物理路径,主机在www.NAME.com 点击浏览.. 在 *:80 上的www.NAME.com 查看应用程序 显示的页面是IIS的欢迎页面

尝试的解决方案 1:安装 URL 重写

尝试的解决方案 2:转到主机(在 System32 中)并尝试添加 127.0.0.1 或 127.0.0.1::80,然后添加 www.NAME.com

尝试的解决方案 3:在 index.html 中,编辑基本元素以包含链接 <base href="/NAME/" />

尝试的解决方案 4:不要在 IIS 的默认网站下添加应用程序,而是将其添加为网站

尝试的解决方案 5:授予 IIS_IUSRS 对 web.config 的完全权限 (Image)

尝试的解决方案均无效。我昨天刚开始使用 Blazor,对此我很陌生。难道我做错了什么?谢谢!

【问题讨论】:

为什么要强制它欺骗网站名称?通常在开发系统上调试时,您只需使用 localhost。 你好,你是要部署到www.name.com,因为你需要这个特定的测试配置,或者你只需​​要部署到没有特定DNS 名称 ? 嗨,我想部署到一个命名网站,以便我的同学可以轻松使用我的 Blazor 应用程序(它是一个实用程序,可以自动执行我们学生通常必须手动完成的特定任务)。本来我为它写了一个.NET 5.0 Console Application并分享了文件,但这需要用户也下载.NET 5.0,设置起来很麻烦。 基于我对Blazor的浅薄了解,我认为其他人可以通过这样的URL访问我在我机器上托管的网站。但如果我错了,请纠正我,因为我实际上并没有在学校学习编程。 【参考方案1】:

请参考本教程,我认为这是实现您目标的最佳教程之一: https://blog.medhat.ca/2020/08/deploy-client-side-blazor-web-api-to.html?m=1

请记住,hosts 文件中主机名的配置仅与您的机器相关

所以,为了让学生访问您的 IIS 发布的站点,您需要:

    在 DNS 服务器中注册一个主机名,学生的所有计算机都将使用该主机名解析您的机器名。 IE。如果您的机器应该可以通过www.name.com 访问,您需要您的 DNS 服务器使用您的本地 IP 地址解析此名称 要使用 https 协议,您需要在您的 IIS 配置中加载本地计算机上的证书,但您的学生的每台计算机都必须使用相同的证书。

我认为更好和更简单的解决方案是使用您的本地计算机名称,可能使用您的完整 DNS 名称,并允许学生在浏览器上使用此名称访问该站点。

在这种情况下,您可以使用本地开发证书来允许 https 连接 此证书已安装在您的计算机上,用于开发目的。

我描述的每个概念都在网络上和 SO 上都有详细记录。

【讨论】:

以上是关于无法托管 Blazor 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

当 Azure 应用服务上的“仅 HTTPS”选项处于打开状态时,无法切换 Blazor 应用(在同一托管下)

调试 Blazor WASM(Aspnet 托管)时无法使用热重载

Blazor 托管 - 在显示应用程序之前立即授权

无法从 Visual Studio 2019 16.6.2 调试 Blazor 托管的 webassembly 3.2.0

具有本机依赖关系的 Blazor .NET 6 无法构建为 Docker 映像

将 Blazor 服务器配置为托管 WebAPI