[英]WCF dynamic endpoint and configuration dependency?
我有这个拓扑:(注意WAS)
每个Service1,service2 ... service-n在iis中位于单独的appdomain中。
Service1
需要消耗Service2
。然而,他可以访问service2's
通过端点nettcp
或http
端点。
决定在哪里? (nettcp ot http)
在单独的配置文件中。 (位于c:\\cfg
文件夹中,当然service1会读取cfg以确定他应该在service2
访问哪个绑定。)
Service2
还应该能够看到该文件,因为他也使用其他服务。 但是让( service1
)谈论service1
称为service2
。
cfg文件中的典型条目为:
key : current_service2_Active_endpoint
val : nettcp
所以这是我的问题:
service1
从缓存而不是通过文件系统读取cfg条目。 但Service2也应该读取它,但缓存不会相同(不同的appdomain)。 我该怎么办? 我应该在哪里编写代码(上传到缓存)? 我只有这2个文件:( 也许服务启动了 -但是它的代码是什么?) cache
任务。 对文件的缓存依赖关系似乎是解决方案,但是由于[n]
appDomains的存在,将再次存在[n]
缓存依赖关系。 如何编写一个新的服务(可能称为“ CacheService”)来保存缓存? 这应该是单实例服务,它仅具有一个内部和静态并发字典以及来自缓存的键/值对。
它还应包含一个“ FileSystemWatcher”,以便在CFG文件更改时得到通知,然后可以更新其内部映射。
您所有的服务都将调用此服务,该服务应具有非常简单的界面(“ GetConfigSetting(字符串键)”)。 您可以在IIS中托管该服务,也可以在Windows Service中对其进行自我托管(我会选择第二种方法,因为这样总是可以的)。
您可以将其视为基本的分布式缓存。 无论如何,它不应该比这更复杂。 该协议应该是net.tcp或事件net.pipes,因为您希望延迟尽可能短。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.