ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C# asp.net core 配置 nacos 完整教程,还有提示 “EndPoint” 相关内容报错的处理。

2022-09-06 20:03:39  阅读:257  来源: 互联网

标签:core asp 配置 nacos json 报错 csharp public sdk


C# asp.net core 配置 nacos 完整教程,还有提示 “EndPoint 相关内容报错的处理。

 

 界面截图,关键信息截图如下:

 

 

 

 

 

 

 

 

 

 

 

第一步,安装需要的 Nuget包,按自己的需要进行安装,

我这里用到了两个包 :

nacos-sdk-csharp
nacos-sdk-csharp.Extensions.Configuration

 

 

dotnet add package nacos-sdk-csharp
dotnet add package nacos-sdk-csharp.AspNetCore
dotnet add package nacos-sdk-csharp.Extensions.Configuration
dotnet add package nacos-sdk-csharp.YamlParser
dotnet add package nacos-sdk-csharp.IniParser

 

第二步,.net core 项目代码的 json 文件配置如下:

/*---Nacos配置(开始)---*/
  "NacosConfig": {
    "Listeners": [
      {
        "Optional": false,
        "DataId": "oa-dev.json",//nacos上面的 Data Id 
"Group": "DEFAULT_GROUP" //nacos上面的 Group 名 } ], "Namespace": "e72b8366-f380-4756-a8d0-0273d9712250", //nacos上面的 Namespace 名 "ServerAddresses": [ "http://192.168.10.44:8848" ], //nacos上的ip节点,可以配置多个,用逗号隔开 "UserName": "",//可以不填 "Password": "",//可以不填 "AccessKey": "", "SecretKey": "", //"EndPoint": "acm.aliyun.com",//如果nacos上面的配置详情的配置内容是空的json内容,例如:{} ,这里如果填了值,代码就会报错,这个一个大坑,被坑哭了。最好把它注释掉,留空既不会影响本地,也不会影响nacos上的,也会优先读取nacos上的json文件。 "ConfigFilterAssemblies": [ "YouPrefix.AssemblyName" ],//官方文档默认复制过来的 "ConfigFilterExtInfo": "some ext infomation" //官方文档默认赋值过来的 }, "nacos": { //"EndPoint": "sub-domain.aliyun.com:8080",//和上面的解释一样,最好留空,不然很容易报错。 "ServerAddresses": [ "http://192.168.10.44:8848"], "DefaultTimeOut": 15000, "Namespace": "e72b8366-f380-4756-a8d0-0273d9712250", "ListenInterval": 1000, "ServiceName": "oa",//往nacos服务注册的服务名,自己定义的,喜欢用那个名字就用哪个 "GroupName": "DEFAULT_GROUP", "ClusterName": "DEFAULT", "Ip": "", "PreferredNetworks": "", // select an IP that matches the prefix as the service registration IP "Port": 8189,//往nacos服务注册的服务端口 "Weight": 100, "RegisterEnabled": true, "InstanceEnabled": true, "Ephemeral": true, "Secure": false, "AccessKey": "", "SecretKey": "", "UserName": "", "Password": "", "ConfigUseRpc": true, "NamingUseRpc": true, "NamingLoadCacheAtStart": "", "LBStrategy": "WeightRandom", //WeightRandom WeightRoundRobin "Metadata": { "aa": "bb", "cc": "dd" } }, /*---Nacos配置(结束)---*/

 

第三步,官方文档内容,在 Program.cs 进行如下配置,官方文档 logAction 前面少了一个逗号,我这里加上了:

// v1.3.3 版本之后, 可以用 UseNacosConfig 来简化
public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .UseNacosConfig(section: "NacosConfig", parser: null ,logAction: null)
        // .UseNacosConfig(section: "NacosConfig", parser: Nacos.YamlParser.YamlConfigurationStringParser.Instance logAction: null)
        // .UseNacosConfig(section: "NacosConfig", parser: Nacos.IniParser.IniConfigurationStringParser.Instance logAction: null)       
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseStartup<Startup>();
        });

 

 第四步,官方文档内容,服务注册和发现,在 Program.cs 中配置:

public class Startup
{
    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    public IConfiguration Configuration { get; }

    public void ConfigureServices(IServiceCollection services)
    {
        // ...

        services.AddNacosAspNet(Configuration, "nacos");
    }

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        // ...
    }
}

 

总结:

总共有四个步骤,其实很简单,但是踩坑花了不少时间。

两个开发人员在那里研究,看报错信息,测试,花了有一个下午吧,好在解决了。

如果报错了,重点看json配置文件的值。

如果本地有json文件,nacos上的配置信息的配置内容里又写了配置的json内容,那nacos服务就是优先读取nacos配置上面的json内容,具体参考上面的截图。

如果看到这里对你有帮助,点个赞支持一下吧,踩坑不易。

 

nacos官方文档地址:

https://nacos.io/zh-cn/docs/what-is-nacos.html

 github官方文档地址:

https://github.com/nacos-group/nacos-sdk-csharp/blob/dev/README.zh-cn.md

 

 

 

搜索

复制

标签:core,asp,配置,nacos,json,报错,csharp,public,sdk
来源: https://www.cnblogs.com/jankie1122/p/16662901.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有