You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在.NET MAUI BlazorWebView中托管Blazor Server应用?

可行性与实现方法

完全可以在.NET MAUI BlazorWebView中托管Blazor Server应用,你的问题出在错误使用了HostPage属性,以下是具体实现步骤:

1. 修复核心配置错误

BlazorWebView的HostPage属性用于指定本地嵌入式HTML文件(如MAUI项目wwwroot下的index.html),而非远程Blazor Server的URL。直接设置远程URL会导致控件无法解析,进而跳转到默认的https://0.0.0.0/引发错误。

2. 配置Blazor Server允许跨域

MAUI应用作为独立客户端,需要Blazor Server开启CORS支持才能建立SignalR连接:
在Blazor Server项目的Program.cs中添加CORS中间件:

builder.Services.AddCors(options =>
{
    options.AddPolicy("AllowMAUI", policy =>
    {
        policy.WithOrigins("https://0.0.0.0", "http://0.0.0.0")
              .AllowAnyHeader()
              .AllowAnyMethod()
              .AllowCredentials();
    });
});

// 需放在app.UseRouting()之后、app.UseAuthorization()之前
app.UseCors("AllowMAUI");

3. 修改MAUI项目的Blazor启动脚本

保留MAUI项目中默认的HostPage(如wwwroot/index.html),修改其中的Blazor启动代码,连接到远程Blazor Server:

<!-- 替换原Blazor脚本引用 -->
<script src="https://localhost:7021/_framework/blazor.server.js"></script>
<script>
    Blazor.start({
        configureSignalR: function (builder) {
            // 指定Blazor Server的SignalR端点
            builder.withUrl("https://localhost:7021/_blazor");
        }
    });
</script>

4. 配置MAUI平台网络权限

  • Android:在AndroidManifest.xml中添加网络权限:
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    
  • iOS:在Info.plist中添加localhost的网络访问例外:
    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSExceptionDomains</key>
        <dict>
            <key>localhost</key>
            <dict>
                <key>NSIncludesSubdomains</key>
                <true/>
                <key>NSExceptionAllowsInsecureHTTPLoads</key>
                <true/>
            </dict>
        </dict>
    </dict>
    

5. 启动验证

先启动Blazor Server应用,确认https://localhost:7021/可正常访问,再启动MAUI应用,即可通过BlazorWebView加载远程Blazor Server内容。

内容的提问来源于stack exchange,提问作者IvanH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 02:03:09