我有一个 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();
即使该线程已有 1 年历史,我也会补充这一点,因为我遇到了类似的问题。
我在启用了 Asp Classic 的 Web 服务器上运行了 Blazor 应用程序。 如果我删除 Blazor 应用程序,Asp Classic 将正确显示。 如果我添加 Blazord 应用程序,asp classic 将显示 404 错误。
这甚至没有意义。 asp 位于 Blazord 的 wwwroot 文件夹中,除 .asp(经典 asp 文件)外,所有其他静态页面均正常显示 就好像 Blazord 没有看到它们一样。