再会。有一些外部 WCF 服务位于:
https://cunaexchengetest.azurewebsites.net/Service1.svc
使用 Microsoft WCF Web Service Reference Provider,我将其引用添加到 ASP.NET Core 项目。
问题的本质是,在启动 ASP.NET Core 服务器时,需要每 6 秒启动一个会调用上述 WCF 服务的某个方法的功能。
我想出了以下逻辑:
1.创建内部服务
- 界面
public interface ICunaLoader
{
void LoadData();
}
——它的实现
public class CunaLoader:ICunaLoader
{
Service1Client service = new Service1Client();//объект WCF сервиса
TimerCallback tm;
public CunaLoader()
{
// устанавливаем метод обратного вызова
tm = new TimerCallback(Load);
}
public void LoadData()
{
// создаем таймер
Timer timer = new Timer(tm, service, 0, 6000);
}
private static void Load(object obj)
{
var service1 = obj as Service1Client;
service1.LoadTradeLinesAsync();
}
}
2.在类中将Startup.cs这个内部服务添加到方法中ConfigureServices
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddTransient<ICunaLoader, CunaLoader>();
}
问题!!!我现在如何将此内部服务(或者更确切地说,启动它的方法LoadData())添加到服务器的 ASP.NET Core 请求处理管道?
谢谢@tym32167 - 告诉我该走哪条路。所以我只留下了没有任何接口的实例:
接下来,在
Startup()服务器类构造函数中,我启动了一个单例。一切都按预期进行,频率为 6 秒。