好吧,奇怪的设置,奇怪的问题。我们的 SaaS 应用程序有一个客户端和一个管理 Web 应用程序,在 asp.net-2.0/iis-6 上运行。 Admin 应用程序可以更改显示在 Client 应用程序上的选项。当这些选项保存在管理员中时,我们从管理员调用客户端上的 Web 服务,以刷新该特定帐户选项的缓存。
最近我们开始为我们的客户端应用程序提供 >1 个工作进程,从而导致仅在当前运行的工作进程之一上清除选项缓存。
因此,我显然有其他方法可以解决此问题(但欢迎提供意见),但我的问题是:是否有任何方法可以通过网络请求定位/迭代每个工作进程?
最佳答案
我在这里为这个答案做了一些假设....
我假设客户端应用程序正在使用 .NET 缓存类之一来存储您的应用程序的选项?
当您说“刷新”时,您的意思是将它们刷新回配置文件或数据库表吗?
因为缓存对象和数据不会在进程之间共享,所以您需要一种机制来向在其他工作进程上运行的代码发出信号,表明它需要将其选项重新读入其缓存或强制进程重新启动(这不是很方便,而且很可能是不受欢迎的)。
如果您无权访问客户端源以修改以查看选项配置文件或数据库表(比如使用 SqlCacheDependency),我认为您有点受困于此行为。
关于web-services - 根据要求定位 IIS 工作进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/201827/