ASP.NET Web App 和 C# 应用程序之间的双向通信

Rac*_*hel 0 c# sockets asp.net wcf remoting

我需要构建一个可以双向通信的网站和应用程序。我将使用 ASP.NET 构建网站,并使用 C# 构建应用程序。

我将自己托管该网站,它将与应用程序在同一台计算机上运行。

我不知道在两者之间发送数据的最佳技术是什么。C# 应用程序需要一直运行。我应该构建一个 C# 控制台应用程序,然后隐藏控制台窗口吗?或者其他类型的应用程序更合适?

我一直在浏览 Web,发现了几种不同的建议,包括套接字、消息队列、远程处理和 WCF。一些指示将不胜感激 - 我对这一切都很陌生。

谢谢。

编辑将使用请求-响应模式,Web 应用程序始终是实例化请求的应用程序。这就是我所说的双向通信。

Web应用程序将向后端应用程序发送请求,后端应用程序将执行一些处理,然后将响应发送回Web应用程序。JSON 将用于来回发送数据。

我将使用 SQL Server Express 2008 R2,后端应用程序将是唯一与数据库通信的应用程序。Web 应用程序主要关注表示层。

后端应用程序将具有内存中的对象,这些对象在应用程序启动时实例化(从数据库加载数据),然后持久化到数据库(在执行期间和关闭之前)。C# 控制台应用程序适合这种事情吗?

Lad*_*nka 5

您在评论中描述的是典型的三层应用程序。

  • 前端:托管在 IIS 中的 ASP.NET 应用程序
  • 后端:作为Windows 服务(或托管在 IIS/WAS 中的 WCF 应用程序)运行的 .NET 应用程序,具有公开的 Web 服务。前端应用程序使用 Web 服务(或远程处理)与此应用程序进行通信。
  • 数据库:仅由后端应用程序访问。

只是为了说清楚。双向有很多含义,但在这种情况下常见的是前端调用后端并后端响应(请求-响应模式)。后端从不调用前端 - ASP.NET 应用程序很难实现这种通信。

ASP.NET 基于每个请求工作。客户端调用您的 ASP.NET 应用程序,并处理客户端请求 = 这就是所有逻辑运行的地方。当请求被处理时,处理结束。因此,从后端调用 ASP.NET 应用程序不适合这种情况,除非您公开一些特殊的 Web 服务用于后端处理,但即使在这之后,如果没有 ASP.NET 中的某些内部状态保留,它也不会与您的客户端请求处理相关联。应用。