我有两个Asp.Net网络应用程序,App 1和App 2.它们都使用相同的数据库。我试图从App 1发出命令,并立即在App 2中运行一些代码。
我能想到这样做的唯一方法是在数据库中插入一个命令,并让App 2每隔几分钟轮询一次数据库。但这意味着运行代码可能会有延迟。
有没有办法立即在App 2中运行代码?
答案 0 :(得分:1)
您可以从一个应用程序向另一个应用程序发出HttpRequest,代码将立即运行。
我不知道你正在使用什么语言和平台,所以很难给你具体的例子,但这里有大纲:
在App2中创建一个页面。在标准ASP.Net中,您可以使用处理程序。在ASP Core中,您可以使用API控制器。两者都以JSON或XML返回单个值或完整对象。或者,如果您想返回HTML,则可以使用标准页面。后面的代码是你想要运行的。处理程序或控制器中呈现的页面或返回值是您希望App1返回的响应。
然后从App1向App2中的该页面发出HttpRequest并检查响应以查看如何继续(例如,如果代码成功运行)。
如果您想从App1的服务器端进行调用,则使用HttpRequest。如果要从客户端进行调用,则使用Ajax。在Ajax的情况下,你必须注意安全方面,因为你不想允许任何人从App2调用该页面,除非它背后的代码不会带来任何安全风险并且不返回任何敏感数据。
特定于您的方案的最后一个想法,因为两个应用程序都使用相同的数据库,您可以按照计划将所需的值添加到数据库,然后发出一个简单的HttpRequest。这样,您无需担心安全性或传递任何敏感信息。当App2收到请求时,它会检查数据库以查看该请求是否实际来自App1,然后处理它,否则忽略它。