小编man*_*ger的帖子

Kafka - 代理:消息大小太大

我得到Message size too large的例外,当我尝试发送邮件是超过1个MB的大小。当我尝试生成消息时,错误出现在我的客户端应用程序中。经过一番谷歌搜索后,我发现应该更改设置以增加最大消息大小。嗯,我在/kafka/config/server.properties文件中做到了。我添加了接下来的 2 个设置:

message.max.bytes=15728640
replica.fetch.max.bytes=15728640
Run Code Online (Sandbox Code Playgroud)

另外,我添加fetch.message.max.bytes=15728640/kafka/config/consumer.properties文件中。所有其他设置保持默认。

我重新启动了 kafka 服务器,但仍然出现相同的错误。

PS Kafka 版本是 1.1.0。

apache-kafka kafka-producer-api

11
推荐指数
1
解决办法
1万
查看次数

无法解析ILogger <T>简单注入器ASP.NET Core 2.0

我们在ASP.NET Core应用程序中使用Simple Injector。最近,我们决定将Serilog用于记录目的。

按照Program.cs 文档中的说明进行配置。然后,为了使Simple Injector能够解析,ILoggerFactory我做了如下操作:

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    app.UseMvc();

    // As per my understanding, we force SimpleInjector to use 
    // ILoggerFactory registration from IApplicationBuilder
    container.CrossWire<ILoggerFactory>(app)
}
Run Code Online (Sandbox Code Playgroud)

之后,ILoggerFactory无论我们在哪里使用它都可以注入。而且它工作正常(创建新实例ILogger<T>)。

但这很烦人,每次需要时都从工厂创建实例。最好ILogger<T>直接进入从属类,而不是ILoggerFactory

那么,如何注册ILogger<T>以获取实例,如下所示?

public class HelloWorldController : Controller
{
    public HelloWorldController(ILogger<HelloWorldController> logger)
    {
         // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

c# simple-injector serilog asp.net-core

5
推荐指数
1
解决办法
1503
查看次数

将DbConnectionFactory从.net迁移到.NET核心

我正在尝试将一个小的.net框架项目迁移到.net核心项目.但我花了几个小时搜索如何将以下代码用于.net core 2.0.但我不走运,因为似乎System.Data.Common功能因某种原因被削减了.所以,我在这里有两个问题:

  1. 如何从连接字符串中获取提供程序名称?我们是否有针对.net core 2.0的ConnectionStringSettings
  2. 我们如何只在提供者名称字符串上获得工厂基础?任何其他想法如何执行松耦合数据库连接工厂

    public class ConnectionFactory
    {
        protected readonly DbProviderFactory Factory;
    
        protected readonly string ConnectionString;
    
        public ConnectionFactory(string connectionStringName)
        {
            var settings = ConfigurationManager.ConnectionStrings[connectionStringName];
            this.Factory = DbProviderFactories.GetFactory(settings.ProviderName);
            this.ConnectionString = settings.ConnectionString;
        }
    
        public DbConnection Connection
        {
            get
            {
                var con = Factory.CreateConnection();
                con.ConnectionString = this.ConnectionString;
                return con;
            }
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)

.net c# .net-core

3
推荐指数
1
解决办法
2287
查看次数

未调用 ASP.NET Core 类型转换器方法

我正在尝试配置ForwardedHeadersOptions哪些是Microsoft.AspNetCore.HttpOverrides. 我已将选项添加到我的appsettings.json

"ForwardedHeadersOptions": {
        "ForwardedHeaders": 5,
        "ForwardLimit": 1,
        "KnownProxies": [
            "111.111.111.111"
        ]
    },
Run Code Online (Sandbox Code Playgroud)

前两个属性(ForwardedHeadersForwardLimit)已正确映射,而则KnownProxies不是。这是预期的,因为 的类型KnownProxiesIList<IPAddress>. 因此,为了映射此属性,我创建了类型转换器:

public class IPAddressTypeConverter : TypeConverter
{
    public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
    {
        return sourceType == typeof(string) || base.CanConvertFrom(context, sourceType);
    }

    public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
    {
        return base.ConvertFrom(context, culture, value);
    }
    public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType)
    {
        return destinationType == typeof(IPAddress) …
Run Code Online (Sandbox Code Playgroud)

typeconverter asp.net-core-2.0

1
推荐指数
1
解决办法
4342
查看次数