【发布时间】:2013-09-13 03:33:00
【问题描述】:
我想创建一个 Windows 服务 (CS),它将一些数据对象在内存中保存 12 小时或更长时间。此 Windows 服务 (CS) 应调用 WCF 服务 (DS) 或数据库来填充参考数据。
从网站 (WS),我需要从 windows 服务 (CS) 访问这些数据对象,这样我就不需要调用 WCF 服务或数据库。
之前我通过使用 .NET Remoting (MarshalByRefObject) 实现了类似的功能。
我正在尝试类似于分布式缓存的东西。从网站到 WCF 服务或数据库的引用数据调用需要更长的时间。所以我计划让 Windows (WCF) 服务在非高峰时段加载所有参考数据并将其保存在内存中。我的网站将直接从内存中访问数据对象。
如何在 WCF 中做同样的事情?我的意思是在 WCF 中实现 .Net Remoting...
更新:谢谢大家。我创建了一个 WCF 库并托管在 Windows 服务中。有一个静态哈希表来将数据对象保存在内存中。客户端使用 TCP 访问对象。现在速度很快。
谢谢 JK
【问题讨论】:
-
很抱歉,您的问题根本不清楚。请举例说明您需要做什么。另外我不明白为什么您不希望您的网站直接访问您的 WCF 服务和数据库。使用窗口服务添加图层只会减慢进程
-
您可以很容易地在 Windows 服务中托管 WCF 服务。网上有很多关于如何做到这一点的例子——这里有一个来自微软的例子:msdn.microsoft.com/en-us/library/ms733069.aspx
-
@Guigui 我正在尝试类似于分布式缓存的东西。从网站到 WCF 服务或数据库的引用数据调用需要更长的时间。所以我计划让 Windows (WCF) 服务在非高峰时段加载所有参考数据并将其保存在内存中。我的网站将直接从内存中访问数据对象。
-
如果你有 .net 远程处理的经验,也许这个链接会对你有所帮助...msdn.microsoft.com/en-us/library/aa730857(v=vs.80).aspx
-
@sine 我尝试使用您发送的链接。但我收到连接错误。我应该将文件名更改为“.svc”吗?
标签: c# wcf .net-remoting