我目前正在为我工作的公司在ASP.NET核心中创建一个演示网页。服务器维护一个贝叶斯网络模型,该模型根据用户在客户端的输入来计算概率。重要的是,客户端上的每个用户都有自己的网络,其概率是基于他们的输入的。
为了在整个请求过程中维护网络,我尝试将网络添加为作用域服务,认为它将为每个客户端创建一个实例。为此,我在启动时添加了services.addScoped<networkClass>(networkClass);,并将其注入到用户请求的控制器中。很明显,它并没有起作用。随着我更多地思考,我也意识到我必须以某种方式知道用户何时离开他的会话,以便我可以删除网络。
我的问题是:如果我希望每个web用户/客户端都有自己的实例,比如说数学网络,在ASP.NET核心中使用MVC和Angular,我该怎么做呢?我如何使它在整个用户会话期间持续,然后在用户退出域时通知服务器,以便我可以删除网络?
抱歉,如果这是一个愚蠢的问题,我是相当新的网络开发,所以如果你有一些文档的问题,以及将不胜感激。
谢谢
发布于 2020-02-29 06:18:17
我建议您创建HTTP (API Rest),并通过ASP.NET请求连接到Angular应用程序,而不是使用MVC将Angular与HTTP一起使用。
在未来,如果您想要更改Web应用程序(React的技术示例),您可以在不接触Web Api的情况下完成。相反,如果您想为其他技术更改Web API (例如NodeJs Server ),您可以在不接触Angular Web应用程序的情况下完成。
下面介绍了如何在Asp.net核心:https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-web-api?view=aspnetcore-3.1&tabs=visual-studio中创建Web API
然后,如果您想学习如何创建Angular应用程序,我建议您遵循https://angular.io/教程或这个Udemy课程:https://www.udemy.com/course/the-complete-guide-to-angular-2/
发布于 2020-02-29 07:14:26
我应该做的是创建一个SignalR集线器,然后每次用户连接到应用程序时,都会创建一个新的network类实例,并将其存储在字典中,并将用户会话in作为键值。这样你就可以用一种简单的方式控制它。
https://stackoverflow.com/questions/60459858
复制相似问题