none
ASP.NET中Global.asax.cs文件的Application_Start方法如何在启动时就执行? RRS feed

  • 问题

  • IIS 8.0

    我在Global.asax.cs文件的Application_Start方法写了个循环任务,用于监测一些数据,然后我将其部署到IIS上时,发现Application_Start方法并未执行,

    后来我查了下资料发现,只有当第一个请求到达时,Application_Start方法才会被执行,而我的循环任务和第一个请求无关,也就是说如何做到,不管有没有第一个请求,这个循环任务始终在IIS重启后执行?

    2019年3月11日 4:10

全部回复

  • 你好,

    我建议你可以尝试使用Application Initialization或者Application autostart来实现你的需求。

    通过这两个工具,当你重启你的IIS项目的时候会自动发送一个请求去你的网站,这样就会触发application start方法从而实现一重启就触发。

    具体如何使用你可以参照如下链接:

    https://www.cnblogs.com/irocker/p/iis-80-application-initialization.html 


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2019年3月12日 5:45
  • 您好,如果将循环任务写到Program.cs里是否能可行呢,因为Application_Start方法是当有第一个请求的时候才会执行的
    2019年10月12日 2:39
  • IIS 8.0

    我在Global.asax.cs文件的Application_Start方法写了个循环任务,用于监测一些数据,然后我将其部署到IIS上时,发现Application_Start方法并未执行,

    后来我查了下资料发现,只有当第一个请求到达时,Application_Start方法才会被执行,而我的循环任务和第一个请求无关,也就是说如何做到,不管有没有第一个请求,这个循环任务始终在IIS重启后执行?

    Hi,

    死循环执行的任务,是长时期的。不建议直接放到响应式的IIS里边,防止拖垮IIS服务器。

    我的建议:您尝试制作一个Windows Service,在后台以进程的方式部署到服务器上。这个更合适你这种情况。


    Reproduce your quesions with ScreenToGif is your choice. 
    For IIS: IIS Forum
    For WebSite of .NET: ASP.NET Forum
    For others: StackExchange
    For spam-sender or forum urgent issues, Send your Email at:  forumsfeedback@microsoft.com

    2020年2月13日 6:57