你好,
使用 IIS 反向代理或 Yarp,它们都可以满足您的要求。 如果您使用的是 Yarp,则可以创建一个前端 asp.net 核心应用程序,然后将 yarp 规则放入其中。 该规则包含两个条件,它们会根据需要将 url 重写到不同的应用程序,例如将前端重写到 blazor 的应用程序,将其他 url 重写到旧的 WebForms。
例如:
1.创建新的 asp.net 核心应用程序并从 Nuget 安装 Yarp.ReverseProxy 包
2.在应用程序中添加用法
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddReverseProxy()
.LoadFromConfig(builder.Configuration.GetSection("ReverseProxy"));
var app = builder.Build();
app.MapReverseProxy();
app.Run();
3.修改appsettings.json如下: 如果 url 包含管理员,它将转到 webform URL,如果 url 不包含任何内容,它将转到 blazor。
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*",
"ReverseProxy": {
"Routes": {
"route1": {
"ClusterId": "cluster1",
"Order": 100, // Lower numbers have higher precedence
"Match": {
"Path": "admin/{**catch-all}"
}
},
"minimumroute": {
// Matches anything and routes it to www.example.com
"ClusterId": "minimumcluster",
"Order": 200, // Lower numbers have higher precedence
"Match": {
"Path": "{**catch-all}"
}
}
},
"Clusters": {
"cluster1": {
"Destinations": {
"destination1": {
"Address": https://webform.com/
}
}
},
"minimumcluster": {
"Destinations": {
"example.com": {
"Address": http://www.blazor.com/
}
}
}
}
}
}
关于 yarp 如何工作的更多详细信息,您可以参考YARP 入门和 从 ASP.NET 到 ASP.NET Core 的增量更新 | Microsoft Learn
如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。
注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知 此线程的通知。