有人知道 C#(单声道)Linux Web 服务器托管配置,它支持跨线程的一致静态变量(即不是每个线程实例的 CGI 模型)吗?
细节
我有一些 c#(单声道)代码,我们需要将它们作为简单 Web 应用程序的一部分托管在 linux 上。我们不需要任何传统的 asp 甚至 asp.net mvc 功能,实际上我们只需要基于共享静态变量以动态内容响应特定 url 的能力。
静态变量: 我们确实有一个特殊要求是我们需要静态变量来在所有传入请求中保留它们的值(就像它们在具有 ASP.net mvc 应用程序的 Windows 上所做的一样)。托管像 Apache mod_mono 这样的单声道 c# Web 应用程序的常用方法似乎使用“每个线程的 c# 应用程序实例”模型,其中我们的 c# 应用程序有多个独立的实例,每个实例都有自己的静态变量。这是我们需要避免的问题。我需要一种托管 ac# 应用程序的方法,该方法为一个通用应用程序提供一组共享的静态变量,所有传入请求都会看到这些变量。如果在应用程序回收时静态变量被重置(就像在正常的 IIS/MVC 中一样),只要不经常回收就可以了。
背景是这个网络应用程序需要将大量数据保存在 RAM 中的静态变量中,并快速回答有关该数据的问题。为每个线程打开应用程序的副本会过多地限制 RAM 资源,并且频繁地将数据重新加载到内存中会使应用程序变得太慢(像 IIS/Asp.net MVC 这样的偶尔回收很好)。该系统在 Windows/IIS7 上运行得非常好(每秒 50,000+ 个动态请求),我们不想更改此架构,因此我正在寻找的答案与托管而不是更改应用程序设计有关。