【发布时间】:2013-03-04 12:35:49
【问题描述】:
我有一个 WCF 服务,它使用位于数据库中的各种配置参数,以及一个缓存以获得更好的性能。现在我有一个 Singleton 保存这些信息,并在第一次调用 Web 服务时以延迟加载行为进行初始化。
缓存最近被扩展,所以初始化需要一些时间,当然导致第一次服务请求的响应时间更长。
那么在第一次调用发生之前(可能在应用程序池启动时)对服务进行某种急切加载初始化的最有效方法是什么?
【问题讨论】:
我有一个 WCF 服务,它使用位于数据库中的各种配置参数,以及一个缓存以获得更好的性能。现在我有一个 Singleton 保存这些信息,并在第一次调用 Web 服务时以延迟加载行为进行初始化。
缓存最近被扩展,所以初始化需要一些时间,当然导致第一次服务请求的响应时间更长。
那么在第一次调用发生之前(可能在应用程序池启动时)对服务进行某种急切加载初始化的最有效方法是什么?
【问题讨论】:
不要在 asp.net 应用程序中托管服务,而是在 IIS 中使用自托管进程(即控制台应用程序)或(甚至更好)WAS(Windows 激活服务)服务。
这更可靠,您可以在第一次客户调用之前初始化服务。
详情请见MSDN。
【讨论】: