首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Blazor Server无法与组件交互

Blazor Server无法与组件交互
EN

Stack Overflow用户
提问于 2022-09-19 21:43:03
回答 1查看 110关注 0票数 0

我在中做了一个简单的应用程序,除了我尝试用HTTPS在我的VPS上运行它之外,它大部分工作得很好。当我运行该应用程序时,没有出现错误,websocket似乎成功连接(从Firefox控制台查看),但我无法与网站上的任何组件交互。websocket在尝试与组件交互时也不会发送任何内容,但是它会保持心跳。

我已经做了一个全新的Blazor项目,并遵循了以下指南:https://learn.microsoft.com/en-us/aspnet/core/blazor/host-and-deploy/server,但是没有用。

VPS运行在Ubuntu 22.04.1 LTS上,Apache2作为and服务器(尝试使用nginx,没有帮助),Cloudflare作为CA。证书和密钥是正确的,而且不过时。

我正在运行这个虚拟主机(从上面的链接中获取,另外从https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-apache?view=aspnetcore-6.0运行(尝试使用来自第一个链接的配置,但没有工作)。

代码语言:javascript
复制
<VirtualHost *:*>
    RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
</VirtualHost>

<VirtualHost *:443>
        ServerName              <serverName>

        Protocols               h2 http/1.1

        ProxyRequests           On
        ProxyPreserveHost       On
        ProxyPassMatch          ^/_blazor/(.*) http://localhost:5000/_blazor/$1
        ProxyPass               /_blazor ws://localhost:5000/_blazor
        ProxyPass               / http://localhost:5000/
        ProxyPassReverse        / http://localhost:5000/

        ErrorLog                ${APACHE_LOG_DIR}/error.log
        CustomLog               ${APACHE_LOG_DIR}/access.log combined

        SSLEngine               on
        SSLProtocol             all -SSLv3 -TLSv1 -TLSv1.1
        SSLHonorCipherOrder     off
        SSLCompression          off
        SSLSessionTickets       on
        SSLUseStapling          off
        SSLCertificateFile      /home/cf.pem
        SSLCertificateKeyFile   /home/cf.key
        SSLCipherSuite          ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:>
</VirtualHost>

这就是Blazor Server main看起来的样子(我尝试过的注释片段,并没有帮助):

代码语言:javascript
复制
    public static void Main(string[] args)
    {
        var builder = WebApplication.CreateBuilder(args);

        // Add services to the container.
        builder.Services.AddRazorPages();
        builder.Services.AddServerSideBlazor();
        builder.Services.AddSingleton<WeatherForecastService>();

        //builder.WebHost.ConfigureKestrel(options =>
        //{
        //    options.ConfigureHttpsDefaults(options =>
        //    {
        //        var pem = File.ReadAllText(builder.Configuration["PemPath"]).Trim();
        //        var key = File.ReadAllText(builder.Configuration["KeyPath"]).Trim();
        //        var crt = X509Certificate2.CreateFromPem(pem, key);

        //        options.ServerCertificate = crt;
        //    });
        //});

        var app = builder.Build();

        // Configure the HTTP request pipeline.
        if (!app.Environment.IsDevelopment())
        {
            app.UseExceptionHandler("/Error");
        }

        app.UseForwardedHeaders(new() { ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto });
        app.UseAuthentication();

        app.UseHsts();
        app.UseHttpsRedirection();

        app.UseStaticFiles();

        app.UseRouting();

        app.MapBlazorHub();
        app.MapFallbackToPage("/_Host");

        app.Run();
    }

确认:我可以通过HTTPS访问该网站,HTTPS连接是成功的,没有Razor组件与我交互做任何事情。任何关于如何进行的帮助或建议都将不胜感激,谢谢!

EN

回答 1

Stack Overflow用户

发布于 2022-09-20 20:07:26

我已经解决了这个问题。如果其他人遇到类似的问题,请与CA (在我的例子中为Cloudflare)检查一个名为“auto”(或类似的)的设置,以最小化HTML、CSS和Java。帮助我解决问题的那篇文章:https://zimmergren.net/solved-asp-net-core-blazor-web-sites-does-not-work-with-cloudflare-html-minification/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73779590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档