Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 应用程序无法无限期地侦听数据库连接?_C#_Asp.net_Asp.net Mvc - Fatal编程技术网

C# 应用程序无法无限期地侦听数据库连接?

C# 应用程序无法无限期地侦听数据库连接?,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,我正在尝试构建一个Facebook messenger聊天机器人,我正在尝试使用一个用C#编写的Web应用程序来实现这一点。(MVC) 到目前为止还不错,我已经设法用同样的东西来回答聊天机器人,但现在我需要使用相同的应用程序连接到数据库 更准确地说,同一个应用程序应该在数据库中进行读写操作,以使聊天机器人以“智能”答案进行响应。我有一个响应客户机的控制器,它确实如此,但我似乎不知道如何连接到数据库并将读取的信息提供给需要响应的控制器 我已经做了一些研究,我知道我应该做一个Startup.cs(目

我正在尝试构建一个Facebook messenger聊天机器人,我正在尝试使用一个用C#编写的Web应用程序来实现这一点。(MVC)

到目前为止还不错,我已经设法用同样的东西来回答聊天机器人,但现在我需要使用相同的应用程序连接到数据库

更准确地说,同一个应用程序应该在数据库中进行读写操作,以使聊天机器人以“智能”答案进行响应。我有一个响应客户机的控制器,它确实如此,但我似乎不知道如何连接到数据库并将读取的信息提供给需要响应的控制器


我已经做了一些研究,我知道我应该做一个Startup.cs(目前我没有),我假设这就是我应该使用workers从数据库读写的地方,并从那里将信息输入控制器

我不想让别人为我工作,我只需要指导。我在C语言方面真的很难,因为我主要关注的是机器学习和python,但如果得到一些指导,我可以应付


我的一个想法(我还没有尝试过)是制作另一个控制器(或2?读写),并尝试在另一个控制器中调用它们,以便聊天?

这个问题的范围比看起来更广

  • 对于客户端来说,正如Uwe Kim正确地说的,对于聊天机器人来说,保持与服务器的连续连接,SignalR似乎是微软技术堆栈中的一个不错的选择

  • 对于服务器端解决方案,我建议查看微服务体系结构(一组松散耦合的服务及其自己的数据库),确定信息类别并创建微服务来分别处理这些信息

  • A) 有一个PrimaryController,它将用基本的结构化消息问候用户,并根据从用户收到的输入对请求进行分类。一旦确定了类别,任何需要处理的特殊请求(如从数据库获取数据)都将传递给相应的辅助异步控制器。主控制器将等待辅助控制器的响应。如果辅助控制器回复了更多信息,请将这些信息发布到客户端。此外,主控制器的工作将是验证其可以输入的输入。需要数据库检查的任何其他清理都可以传递给相应的辅助控制器

    B) 辅助控制器的工作将是- 1.验证输入。 2.决定参与哪些微服务来获取必要的信息 3.根据需要调用微服务 4.通过主控制器将从微服务接收到的响应传递回客户端


    这些只是建议,你可能也会有类似的想法!谢谢

    可能是正确的工具。“我知道我应该启动一个Startup.cs”…不,这与建立数据库连接无关。您可以找到有关如何使用Entity Framework或ADO.NET连接到数据库的教程。您可以使用这些库中的任何一个轻松地输入和输出值。如果您展示您现有的控制器代码,这也会对我们有所帮助。虽然Uwe是对的,但SignalR(使用websockets)可能是chap应用程序比常规MVC控制器更好的选择。您仍然可以从那里将内容保存到数据库中。