要在反向代理(YARP)后使用IIS托管Blazor 8(仅服务器),需要进行以下步骤:
dotnet new blazorserver -n BlazorApp
打开项目文件夹并打开BlazorApp.csproj
文件。确保项目的目标框架版本为.NET 5.0
。
在项目文件中添加对Microsoft.AspNetCore.Diagnostics.HealthChecks
和Microsoft.ReverseProxy
包的引用。在
元素内添加以下代码:
Startup.cs
文件,并添加以下代码以配置反向代理:using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.ReverseProxy;
namespace BlazorApp
{
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddReverseProxy()
.LoadFromConfig(Configuration.GetSection("ReverseProxy"));
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapBlazorHub();
endpoints.MapFallbackToPage("/_Host");
});
app.UseEndpoints(endpoints =>
{
endpoints.MapHealthChecks("/health");
});
app.UseReverseProxy();
}
}
}
appsettings.json
文件中添加反向代理配置。以下示例配置将请求代理到http://localhost:5000
:{
"ReverseProxy": {
"Clusters": {
"mycluster": {
"Destinations": {
"destination1": {
"Address": "http://localhost:5000"
}
}
}
},
"Routes": [
{
"RouteId": "route1",
"ClusterId": "mycluster",
"Match": {
"Path": "{**catch-all}"
}
}
]
}
}
dotnet run
http://localhost:5000
上托管。可以通过http://localhost:5000/_Host
访问应用程序。请注意,YARP是一个开源项目,可能会有更新和变化。请确保使用与您的Blazor版本兼容的YARP版本。