2009-10-14 51 views

回答

1

不是直接。您的Windows服务作为独立于您的Web应用程序运行的应用程序池的进程运行。您需要在进程间通信中使用某种形式。您也可能想要考虑您最终希望或需要将Windows服务部署在与Web应用程序不同的服务器上的可能性。

您可以从您的Web应用程序公开Web服务,您的服务调用以访问/更新缓存的数据,如jro建议。或者,您可以使用SQL Server存储数据和SQL通知服务,以提醒Windows服务数据已更改。这将阻止您不得不从您的Windows服务中持续轮询Web服务。另一种选择是从Windows服务中公开一个WCF端点,您可以从您的Web应用程序调用WCF端点来传递数据。

选择模式确实取决于您的要求 - 特别是通信的哪一端将启动更新。

0

访问ASP.Net的运行时缓存需要访问w3wp进程。我不确定在特定于w3wp进程的对象的跨进程封送中的限制。

根据您在“处理”缓存条目时需要什么,请考虑将一个简单的Web服务添加到您的网站并使用凭据进行保护。然后,您可以在服务调用的后台访问缓存对象,并代表Windows服务对这些缓存对象执行操作。

1

为什么不看看memcached for .NET?它是一个分布式缓存系统,您的网站和Windows服务都可以调用。这里有一个例子CodeProject

+0

我会走这条路。如果你更喜欢MS软件,可以使用memcached.net或Microsoft的Velocity项目。 – ConsultUtah 2009-11-23 21:22:48

相关问题