5.9K Star 11.6K Fork 4K

GVPdotNET China / Furion

 / 详情

[急]Furion中调用nacos注册后获取不到正确的端口

已完成
创建于  
2023-02-18 11:38

Furion 版本号

哪个版本号?
是所有版本
我当前用的是 4.8.6.5

.NET SDK 版本号

  • [√] .NET7

项目类型

  • [√] WebApi
  • [√] Console

操作系统和版本

  • [√] Windows

代码环境

  • [√] 开发环境(Development)
  • [√] 生产环境(Production)

描述你的问题


执行Furion项目生成exe启动, nacos注册服务获取不到正确的端口
如用原生项目生成的exe启动是能正常获取, 而用Fur不能
代码中我在Run哪里指定了地址和端口http://*:8081

Vs调试模式正常

单独运行exe不正常


您的代码下载地址?


链接:https://pan.baidu.com/s/1E9SsAWKdQZxXHFm6vMG_uA
提取码:12mk

期待结果

期待的结果是?
无论在任何情况下,指定都应该获取正确的IP和端口

评论 (12)

戴族-野生架构师 创建了任务
戴族-野生架构师 修改了描述
戴族-野生架构师 修改了描述
展开全部操作日志

请问,Demo 给的是啥?

输入图片说明

我该如何运行?!!

可尝试:

var app = RunOptions.Default.WithArgs(args);
app.ConfigureInject((builder, options) =>
{
    options.ConfigureWebServices((hostContext, services) =>
    {
        services.AddNacosAspNet(builder.Configuration);
    });
});
Serve.Run(app, "http://*:8081");

https://furion.baiqian.ltd/docs/configuration#4110-%E5%AE%9E%E7%8E%B0%E9%85%8D%E7%BD%AE%E4%B8%AD%E5%BF%83

输入图片说明

百小僧 任务状态待办的 修改为已完成
var app = RunOptions.Default.WithArgs(args);
app.ConfigureInject((builder, options) =>
{
    options.ConfigureWebServices((hostContext, services) =>
    {
        services.AddNacosAspNet(builder.Configuration);
    });
});
Serve.Run(app, "http://*:8081");

改成这样nacos获取到的端口依然是80

提供一个我可以正常运行,能够看到你截图页面,把测试步骤写上来的再打开 issue,你也可以到 nacos 去发issue。

demo
1、前面部分是 原生框架的启动代码,用它编译运行后能正确获取到端口
2、部分用的是 Fur框架
3、需要搭建一个nacos环境,然后更改下appsettings.json里面的nacos节点的服务器地址,然后编译代码运行即可

这是你提供的 Demo

using Nacos.AspNetCore.V2;

// =============================================
// 1、使用原生
// =============================================
//var builder = WebApplication.CreateBuilder(args);

//// Add services to the container.
//builder.Services.AddNacosAspNet(builder.Configuration);

//builder.Services.AddControllers();
//// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
//builder.Services.AddEndpointsApiExplorer();
//builder.Services.AddSwaggerGen();

//var app = builder.Build();
//// Configure the HTTP request pipeline.
//if (app.Environment.IsDevelopment())
//{
//    app.UseSwagger();
//    app.UseSwaggerUI();
//}
//app.UseAuthorization();
//app.MapControllers();
//app.Run("http://*:8081");


// =============================================
// 2、使用Fur框架
// =============================================

var app = RunOptions.Default;
app.ConfigureBuilder(builder =>
{
    builder.Services.AddNacosAspNet(builder.Configuration);
});
Serve.Run(app, "http://*:8081");

原生代码和 Furion 提供的代码对等了再说,另外,我不会花时间去搭建一个 nacos 环境来证明是 nacos 还是 furion 的问题,请证明原生没问题,Furion 有问题,条件是两者代码是对等的!

还有你完全可以使用原生集成 Furion 的方式:

输入图片说明

可在第一行 builder.Services.AddNacosAspNet(builder.Configuration); 之后再集成 Furioninject() 功能。

var builder = WebApplication.CreateBuilder(args).Inject();

builder.Services.AddNacosAspNet(builder.Configuration);
builder.Services.AddControllers().AddInject();

var app = builder.Build();

app.UseInject();
app.MapControllers();
app.Run("http://*:8081");

以这种原生方式集成Fur现在能正常获取端口

我刚刚发布了 v4.8.6.6 版本,调整了端口设置底层代码,你升级到最新看看,如果原来的 Serve.Run 方式还有问题,那么就麻烦提供一个我在本地可以测试的环境,我无需安装一堆第三方的东西,比如 Nacos ,我没用过。

更新4.8.6.6后用Serve.Run能正常获取端口了 :smile:

百小僧 修改了描述
百小僧 修改了标题

文档补上修正记录了~~

输入图片说明

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(2)
974299 monksoul 1578937227
C#
1
https://gitee.com/dotnetchina/Furion.git
git@gitee.com:dotnetchina/Furion.git
dotnetchina
Furion
Furion

搜索帮助