繁体   English   中英

WCF动态端点和配置依赖性?

[英]WCF dynamic endpoint and configuration dependency?

我有这个拓扑:(注意WAS)

每个Service1,service2 ... service-n在iis中位于单独的appdomain中。 在此处输入图片说明

Service1需要消耗Service2 。然而,他可以访问service2's通过端点nettcphttp端点。

决定在哪里? (nettcp ot http)

在单独的配置文件中。 (位于c:\\cfg文件夹中,当然service1会读取cfg以确定他应该在service2访问哪个绑定。)

Service2还应该能够看到该文件,因为他也使用其他服务。 但是让( service1 )谈论service1称为service2

cfg文件中的典型条目为:

key : current_service2_Active_endpoint
val : nettcp

所以这是我的问题:

  • 我需要找到一个将CFG读取到缓存中的解决方案,或者使service1从缓存而不是通过文件系统读取cfg条目。 但Service2也应该读取它,但缓存不会相同(不同的appdomain)。 我该怎么办? 我应该在哪里编写代码(上传到缓存)? 我只有这2个文件:( 也许服务启动了 -但是它的代码是什么?)

在此处输入图片说明

  • 我希望CFG文件中的每个更改 -将条目重新加载到缓存中。 这似乎是经典的cache任务。 对文件的缓存依赖关系似乎是解决方案,但是由于[n] appDomains的存在,将再次存在[n]缓存依赖关系。

如何编写一个新的服务(可能称为“ CacheService”)来保存缓存? 这应该是单实例服务,它仅具有一个内部和静态并发字典以及来自缓存的键/值对。

它还应包含一个“ FileSystemWatcher”,以便在CFG文件更改时得到通知,然后可以更新其内部映射。

您所有的服务都将调用此服务,该服务应具有非常简单的界面(“ GetConfigSetting(字符串键)”)。 您可以在IIS中托管该服务,也可以在Windows Service中对其进行自我托管(我会选择第二种方法,因为这样总是可以的)。

您可以将其视为基本的分布式缓存。 无论如何,它不应该比这更复杂。 该协议应该是net.tcp或事件net.pipes,因为您希望延迟尽可能短。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM