C# Webservice没有';在服务器重新启动或IIS重置后无法登录

C# Webservice没有';在服务器重新启动或IIS重置后无法登录,c#,winforms,web-services,iis,C#,Winforms,Web Services,Iis,我编写了一个代码,用System.Timers.Timer每隔2分钟调用doMethod(),doMethod()在服务器a上使用web服务,但如果服务器a或服务器a上的IIS停止,则在重新启动后,doMethod()无法工作。我的问题是: 服务器重新启动后计时器是否停止?(我知道答案是否定的,但我很困惑) 服务器重新启动后,web服务是否无法登录 代码如下: public Form1() { InitializeComponent(); System.Time

我编写了一个代码,用
System.Timers.Timer
每隔2分钟调用
doMethod()
doMethod()
在服务器a上使用web服务,但如果服务器a或服务器a上的IIS停止,则在重新启动后,
doMethod()
无法工作。我的问题是:

  • 服务器重新启动后计时器是否停止?(我知道答案是否定的,但我很困惑)
  • 服务器重新启动后,web服务是否无法登录
  • 代码如下:

    public Form1()
        {
          InitializeComponent();
    
          System.Timers.Timer timer = new System.Timers.Timer
             {
               Interval = 120000 //2 minutes
             };
    
             timer.Elapsed += timer_Elapsed;
             timer.Start();
        }
    
    private void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        {
          var session = new WebApiLoginSession("http://172.27.1.1", "webserviceUser", "somePassword");
    
          if (string.IsNullOrEmpty(session.ID))
            {
              doMethod();
            }
        }
    

    您的服务只有在收到第一个请求后才会启动。这是IIS中应用程序的默认行为。当然,您可以在应用程序中更改该配置。这是一个可能有帮助的链接。您如何知道服务器正在重新启动或IIS正在回收?当应用程序停止工作而您手动登录到WebApiLoginSession时会发生什么情况?@Jeremythonpson我的应用程序正在服务器A上的SQL Server中插入一些数据,而另一个团队正在服务器A上工作,有时他们必须重新启动服务器,在此之前他们会呼叫我,但在重新启动服务器之后,在我重新启动应用程序之前,我的应用程序不会工作。好的,我最初认为web服务是冷的,在第一次请求时加载库,如果这需要>1分钟,它就会超时。你看到的错误是什么?重新启动后预热IIS是否会有所不同?当您说doMethod()不起作用时,它是如何失败的?您必须在
    WebApiLoginSession
    call中检查代码为什么失败?这些信条怎么会无效呢?该服务是否切断了连接,或者更可能是某种程度上孤立了连接?