在 Blazor WebAssembly 托管中提供经典 ASP

问题描述 投票:0回答:1

我有一个 Blazor WebAssembly 托管站点,我需要用它来服务器一些客户需要使用的经典 ASP 应用程序,直到它们转换为 Blazor。

我将所需的asp文件放在Client wwwroot文件夹中。然后,我将以下逻辑添加到服务器 Program.cs 文件中。发生的情况是,它提供完整的 asp 文件,而不在服务器上将其处理为 html 页面。我怎样才能做到这一点?

app.MapWhen(ctx => { var p = ctx.Request.Path.ToString(); return p.ToLower().EndsWith(".asp");  }, asp =>

{

    asp.UseEndpoints(endpoints =>

    {

        endpoints.MapControllers();

        endpoints.MapRazorPages();

        endpoints.MapFallbackToPage("/_Host");

        endpoints.MapGet("/{Page}.asp", x =>

        {

            x.Response.Redirect("/{Page}.asp");

            return Task.CompletedTask;

        });

    });

});

 
app.MapRazorPages();

app.MapControllers();

app.MapFallbackToFile("index.html");


app.Run();
asp-classic blazor-server-side blazor-webassembly
1个回答
0
投票

即使该线程已有 1 年历史,我也会补充这一点,因为我遇到了类似的问题。

我在启用了 Asp Classic 的 Web 服务器上运行了 Blazor 应用程序。 如果我删除 Blazor 应用程序,Asp Classic 将正确显示。 如果我添加 Blazord 应用程序,asp classic 将显示 404 错误。

这甚至没有意义。 asp 位于 Blazord 的 wwwroot 文件夹中,除 .asp(经典 asp 文件)外,所有其他静态页面均正常显示 就好像 Blazord 没有看到它们一样。

© www.soinside.com 2019 - 2024. All rights reserved.