c# - IIS 的 .Net Web 应用程序应用程序启动工作流

标签 c# asp.net wcf iis web-applications

好吧,假设我有一个 Web 应用程序,它绝对必须执行某种启动并且必须无限期地保持运行,而不管它从客户端接收到的通信(因为它是一个基于推送的系统)

现在为了测试,我一直将它作为 Windows 服务托管,这很棒,因为它允许我有一个硬入口点到应用程序,我可以在其中进行引导并启动和运行服务

接下来,我试图将它转移到 IIS 世界中,这样我就可以面向外部世界提供这项服务......我遇到了一个障碍......我没有任何硬入口点我可以引导应用程序,但 global.asax 除外,据我所知,它仅在客户端调用服务器时调用

有没有更好的区域我可以放置应用程序的入口并在不等待客户端连接到它的情况下引导它?这个区域是只调用一次还是会在应用程序超出范围时定期调用(可以这么说)?正如我所说,应用程序必须始终保持运行状态

最佳答案

Is there a better area I can put an entrance to the application and get it bootstrapped without waiting for a client to connect to it?

是的,有。你可以warm up IIS .

And is this area only called once or is it going to be called periodically as the application falls out of scope (so to speak)?

这取决于您使用的是 Global.asax 中的哪种方法。 Application_Start 在每次应用启动时运行一次。

Like I said, the app has to remain running at all times

小心,这里有龙。这取决于它的重要性。如果你需要绝对的可靠性,你必须使用负载均衡器并且至少有一个其他的重复服务。其他需要考虑的事情,应用程序池需要不时回收。 IIS、操作系统、您的应用程序有错误、需要安装更新、网络设备出现故障、断电等等。

关于c# - IIS 的 .Net Web 应用程序应用程序启动工作流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16349110/

相关文章:

c# - 数据表始终返回 0

c# - .NET 饼图 : how to add text to slices and rotate chart

wcf - 这是 Crudy 反模式吗?

wcf - 如何使用 WCF/Rest Web 服务更新 sharepoint 中的多选字段?

c# - 如何在 C# 中模拟来自 httpclient 的响应,Azure 函数,如何测试

c# - 将 C# 用于实时应用程序

c# - 如何检索中继器内表列(ID)的TD值

c# - asp.net下的Process.Start()?

c# - 获取 session 剩余时间直到超时

php - 使用 PHP 调用具有多个绑定(bind)的 WCF Web 服务