c# - 在 GoDaddy 服务器上发出请求之前,API 会停止工作

标签 c# asp.net api iis

我在 Godaddy 服务器上运行 API 时遇到问题。 API基本上是在某个网站开始运行后,在一定时间内不断向网站发送请求。因此,它具有在 Application_Start 中创建的用于控制此操作的计时器。出于某种原因,如果没有人发出请求,我的 API 会在一段时间后停止工作。但是我需要我的 API 一直工作,因为我需要一个包含从另一个网站收集的实时数据的列表。您可以在下面详细阅读我采取的步骤和遇到的问题:

  1. 我在 Visual Studio 2013 上用 C# 编写了我的 Web API。
  2. 我从 Godaddy 购买了具有 Windows Deluxe 托管的服务器。
  3. 我使用 ftp 将我的文件上传到我服务器的 httpdocs 文件夹。
  4. 当我通过键入“mysite.com/myWebAPI/myList”调用我的 API 时,它开始工作并最初返回一个空列表(我认为这是正常的)
  5. 然后我在 2 秒内发出相同的请求(允许我的 API 收集数据)并返回我想要的列表,其中包含从另一个网站收集的实时数据。
  6. 在这之后,我的 API 应该不会停止。它必须每 X 秒向网站发送一次请求并更新列表中的信息。
  7. 但是,5 或 10 分钟后,如果没有人发送请求,那么我的 API 就会停止,因此它会停止从另一个网站收集信息,并且列表不会更新。
  8. 然后,如果发出另一个请求,它会再次激活并开始工作,但现在我的列表再次为空。这意味着列表会重新创建。这只有在再次调用 Application_Start 时才会发生。

请注意,当我在本地主机服务器上运行此 Web API 时,它运行良好。它不会停止并通过每 X 秒向网站发送请求来正确收集信息。即使我在 30 分钟内没有提出任何请求,它也会在我发送请求后 30 分钟后返回我想要的列表。

所以问题是,有没有办法解决这个问题,让我的 API 一直工作,而无需在具有 Windows Deluxe Hosting 的 GoDaddy 服务器上停止?

我可能必须在 IIS 应用程序池中做一些事情,但我不确定该做什么。

感谢您的帮助。

最佳答案

我不确定 GoDaddy 的具体情况,但在 Azure Web App Service 上,这也很常见,并且通过启用“始终在线”功能解决了这个问题,该功能大概每 x 分钟自动执行一次 ping API 的工作。如果 GoDaddy 有类似的功能,启用它可能会解决这个问题。

关于c# - 在 GoDaddy 服务器上发出请求之前,API 会停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24785363/

相关文章:

c# - 为什么 ProgressBar.SetValue 会抛出具有有效值的 ArgumentException?

c# - 在浏览器中加载 asp.net 页面时触发哪个事件

c# - Linq 的 GroupBy 方法如何延迟执行?

c# - 从类调用寻呼

git - 如何使用 API 下载 repo

mysql - 使用 MySQL,具有固定名称 'MySql.Data.MySqlClient' 的 ADO.NET 提供程序未在计算机或应用程序配置文件中注册

c# - 如何使用 HttpWebRequest.AllowAutoRedirect 处理身份验证?

asp.net - 没有 iframe 的跨站点共享 UI

c# - ASP.NET Web Api的事件发布者

javascript - Facebook FB.getLoginStatus 在 IE 7 中不会返回