【问题标题】:Target IIS Worker Processes on Request根据请求定位 IIS 工作进程
【发布时间】:2010-09-17 03:22:06
【问题描述】:
好的,奇怪的设置,奇怪的问题。我们的 SaaS 应用程序有一个客户端和一个管理员 Web 应用程序,在 asp.net-2.0/iis-6 上运行。管理员应用程序可以更改客户端应用程序上显示的选项。当这些选项保存在 Admin 中时,我们会从 Admin 调用客户端上的 Web 服务,以刷新该特定帐户的选项缓存。
最近我们开始为我们的客户端应用程序提供 >1 个工作进程,从而导致仅在当前运行的工作进程中的 1 个上清除选项缓存。
所以,我显然还有其他方法可以解决这个问题(但我们很欣赏输入),但是我的问题是:有没有办法通过网络请求来定位/迭代每个工作进程?
【问题讨论】:
标签:
web-services
caching
iis-6
asp.net-2.0
worker-process
【解决方案1】:
我拥有对管理员和客户端的完全访问权限,通过缓存,我的意思是 .net 的 Cache 对象。刷新是指从 Cache 对象中删除项目。
我知道两个工作进程不共享缓存数据。这就是我的难题)
系统是消除每个新会话进入的需要点击 sql 的方式。所以我试图找到一个解决方案,可以告诉每个工作进程缓存需要清除 w/ o 让 sql 参与进来。
【解决方案2】:
我在这里为这个答案做了一些假设......
我假设客户端应用程序正在使用 .NET 缓存类之一来存储应用程序的选项?
您所说的“刷新”是指将它们刷新回配置文件或数据库表吗?
因为缓存对象和数据不会在进程之间共享,所以您需要一种机制来向其他工作进程上运行的代码发出信号,告知它需要将其选项重新读取到其缓存中或强制进程重新启动(这不太方便,很可能是不受欢迎的)。
如果您无权访问客户端源来修改以查看选项配置文件或数据库表(例如使用 SqlCacheDependency),我认为您有点被这种行为所困扰。