我有一个wcf服务,我希望在IIS中发布后立即自动调用方法。就像WCF服务的初始化一样,无需手动或从其他地方调用该方法。我应该在哪里将Initialize方法放在WCF服务中,以便在应用程序启动后完全运行?
答案 0 :(得分:2)
如果您在IIS中托管,则可以使用托管WCF服务的Web应用程序的 Global.asax 中的 application_start 事件来执行任何应用程序初始化。如果您在首次安装时试图调用其中一个服务,那么这可能是错误的方法。
在启动Web服务时运行一些代码的动机是什么?如果你试图绕过对WCF服务的慢速初始调用,我建议你想在WCF客户端而不是在服务中做一些工作......但我只想猜测你的动机
答案 1 :(得分:0)
初始化WCF服务?那么你有单身人士服务还是想要初始化一些全球状态?否则初始化没有意义,因为将为实际客户端创建服务实例。
默认情况下,IIS在第一次访问时启动应用程序。如果在Application_Start(HttpApplication或Global.asax)中放置初始化,则代码将在首次访问应用程序时运行。但访问该服务不是您的应用程序可以启动的。
IIS 7.5(Windows 2008 R2)具有预热模块,可以在池被回收或重新启动工作线时运行一些代码。如果您使用其他版本的IIS,则必须使用一些外部解决方案,例如定期应用程序定期ping服务。