【发布时间】:2017-02-09 20:46:24
【问题描述】:
我有由 iis 托管的 wcf 应用程序。 我添加了带有 Application_Start 的 Global.asax 文件。
但是当我启动 iis(或重置)时,我没有看到 Application_Start 方法被调用。
如何解决? 我希望 iis 会在 iis 启动时调用此方法(当计算机启动时(因为 iis 在机器启动时自动启动)或 iis 重新启动时)
【问题讨论】:
我有由 iis 托管的 wcf 应用程序。 我添加了带有 Application_Start 的 Global.asax 文件。
但是当我启动 iis(或重置)时,我没有看到 Application_Start 方法被调用。
如何解决? 我希望 iis 会在 iis 启动时调用此方法(当计算机启动时(因为 iis 在机器启动时自动启动)或 iis 重新启动时)
【问题讨论】:
如果 WCF 服务托管在网站的 IIS 上,则应调用 Application_Start 方法。但是,默认情况下,应用程序池在应用程序池收到第一个请求之前不会启动。
因此,在您调用 WCF 服务之前,不会调用 Application_Start 方法。
另外,IIS 提供应用程序初始化模块,可用于由 IIS 服务器向网站发出虚假请求,以便应用程序可以在 IIS 启动后自动启动。它还允许为应用程序自定义预热代码。您可以阅读更多详细信息here。
【讨论】:
WCF 不能那样工作。这是一项按呼叫服务,因此可以按需处理请求...
更多细节可以在这里找到:https://stackoverflow.com/a/739674/444665
但是,您也许可以通过此解决方案来解决您的愿望Running a function on WCF start up
【讨论】: