51 lines
1.3 KiB
C#
51 lines
1.3 KiB
C#
using MassTransit;
|
||
using MassTransitDemo.Contracts;
|
||
|
||
var builder = WebApplication.CreateBuilder(args);
|
||
|
||
// 添加控制器服务
|
||
builder.Services.AddControllers();
|
||
|
||
// 添加API探索器(用于Swagger)
|
||
builder.Services.AddOpenApi();
|
||
|
||
|
||
// 配置MassTransit和RabbitMQ
|
||
builder.Services.AddMassTransit(x =>
|
||
{
|
||
// 配置RabbitMQ传输
|
||
x.UsingRabbitMq((context, cfg) =>
|
||
{
|
||
// 从配置中读取RabbitMQ连接信息
|
||
var rabbitMqConfig = builder.Configuration.GetSection("RabbitMQ");
|
||
var host = rabbitMqConfig["Host"];
|
||
var port = ushort.Parse(rabbitMqConfig["Port"]!);
|
||
var username = rabbitMqConfig["Username"];
|
||
var password = rabbitMqConfig["Password"];
|
||
var virtualHost = rabbitMqConfig["VirtualHost"];
|
||
|
||
// 配置RabbitMQ主机连接
|
||
cfg.Host(host, port, virtualHost, h =>
|
||
{
|
||
h.Username(username);
|
||
h.Password(password);
|
||
});
|
||
|
||
// 配置消息端点(发布者不需要配置消费者,只需要配置发送)
|
||
cfg.ConfigureEndpoints(context);
|
||
});
|
||
});
|
||
|
||
var app = builder.Build();
|
||
|
||
app.MapOpenApi();
|
||
app.UseSwaggerUI(options =>
|
||
{
|
||
options.SwaggerEndpoint("/openapi/v1.json", "API v1");
|
||
});
|
||
|
||
// 映射控制器路由
|
||
app.MapControllers();
|
||
|
||
app.Run();
|