首页 > 解决方案 > 替代非 ASP.NET 特定的全局静态数据

问题描述

我正在开发一个由 WinForms 应用程序、一组 XML Web 服务和一组 WCF 服务组成的遗留系统。每个应用程序都是“内部”的 3 层,因为业务和数据逻辑被分解为单独的程序集,但“外部”是整体的,因为所有 3 个程序集都由每个应用程序加载到它们自己的应用程序域中。

WinForms 应用程序必须先出现,因为内部设计充满了跨越层边界的全局静态数据。其中最明显的坏处是登录的用户信息。前端应立即“登录”用户,然后数据在每次数据库读取和写入时使用该信息。

这在 WinForms 应用程序中“工作正常”,但在 Web 服务中崩溃并不奇怪,因为并行传入的请求会压倒彼此的静态数据,并且开始发生非常糟糕的事情。到目前为止,我已经找到了许多在 ASP.NET 级别跟踪全局数据的选项,但它们都依赖于 ASP.NET 特定的对象,例如Sessionor HttpContext,我不能使用这些对象。这也需要在 WinForms 应用程序中工作。

是否有任何其他类似于静态变量的选项可以改装到系统中(通过合理的努力;重构系统以正确设计目前超出范围)?

标签: c#asp.netwinforms

解决方案


推荐阅读