小编ima*_*ady的帖子

Asp.Net Core - 已达到配置的 inotify 实例数量的用户限制 (128)

查询mysql数据库(在Ubuntu 14.04/16.04上)一定次数后,asp.net core MVC报告错误,并显示以下消息:“已达到配置的inotify实例数量的用户限制(128)。 ”它可以确定错误是由于控制器打开了太多文件并超出了 iNotify 设置的限制(在/proc/sys/fs/inotify/max_user_instances 中)而引发的。但是当 ASP.NET 在每个 http 请求上打开文件时,我感到很困惑,为什么它没有正确关闭文件?有人也遇到过这个问题吗?备注:我使用的是 Mysql.data.core 和 mysql.data.entityframeworkcore 提供程序。

    private static string classiferstring = "sports,outdoor,startup,pets,child,adult,elderly";

    [AllowAnonymous]
    [HttpGet]
    public async Task<object> Classify([FromQuery] string classifyword)
    {
        string[] classifers = classiferstring.Split(',');
        if (!classifers.Contains(classifyword))
        {
            return new
            {
                status = 0,
                info = "WrongClassifier",
                Data = ""
            };
        }

        try
        {
            var predata = await (from d in _context.descriptor
                              join a in _context.combination on d.ID equals a.ID
                              select …
Run Code Online (Sandbox Code Playgroud)

ubuntu inotify entity-framework-core asp.net-core

6
推荐指数
4
解决办法
8635
查看次数

如何在 Asp.net Core 运行时从 DependencyInjection 解析泛型类型服务

我正在处理一个将 XML 消息发布到我的服务器的微信项目。该消息可以是多种类型中的任何一种。因此,我首先将消息反序列化为具有基“WxMessage”的相应对象,然后将该对象返回给调度程序,调度程序将找到正确的消息处理程序来处理该消息。每种消息类型对应的处理程序都通过 IWxMessageHandler<> 接口注册到 Asp.net core 2.1 的 DependencyInjection 中。

services.AddScoped<IWxMessageHandler<WxMessage_Image>, WxMessageHandler_Image>();
services.AddScoped<IWxMessageHandler<WxMessage_Text>, WxMessageHandler_Text>();
services.AddScoped<IWxMessageHandler<WxMessage_File>, WxMessageHandler_File>();
Run Code Online (Sandbox Code Playgroud)

这是消息服务:

    public async Task<string> Handle(string messageBody)
    {
        var reply = default(WxMessage);

        using (var deserial = new WxInMessageDeserializer())
        {
            var deserializedModel =  deserial.Parse(messageBody);

            reply = (WxReplyMessage_Text) await HandleMessage(deserializedModel);
        }
        return await Task.FromResult(BuildXmlContent(reply));
    }

    public async Task<WxMessage> HandleMessage<TMessage>(TMessage message) 
    {
        var _handler = _serviceProvider.GetService<IWxMessageHandler<TMessage>>();
        ......
    }
Run Code Online (Sandbox Code Playgroud)

然而,它无法解析 IWxMessageHandler<> 的正确实现,因为 WxInMessageDeserializer 返回 WxMessage 的基础对象:

        var result = default(WxMessage);
        switch (_msgTYpe)
            {
                case "text": result = (WxMessage_Text)new …
Run Code Online (Sandbox Code Playgroud)

c# generics dependency-injection type-inference asp.net-core

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