无法托管 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 托管)时无法使用热重载
无法从 Visual Studio 2019 16.6.2 调试 Blazor 托管的 webassembly 3.2.0