我有一个非常简单的服务合同,用于管理自己的数据导入,类似于:
using System.ServiceModel;
namespace Company.Services.Domain.Contract
{
[ServiceContract(Name = "ImportService", Namespace = "http://services.company.org/")]
public interface IImportService
{
[OperationContract]
ImportResponse ImportData();
}
}
我想设置一个计划任务或类似的东西来每天执行此调用。我知道我可以编写一个控制台应用程序并通过 svcutil 创建代理。但是有没有办法在 IIS 中本地配置它(也许是 IIS 扩展)?或者我可以使用 PowerShell 实现简单而优雅的目标吗?
只是想知道我的选择是什么。
您可以拥有一个 IIS 托管的应用程序,该应用程序使用IIS自动启动 http://msdn.microsoft.com/en-us/library/ee677260.aspx,假设您运行的 IIS 版本至少为 7.5。自动启动不会在计时器上运行,但有助于保证您的应用程序始终运行。 IIS 启动应用程序后,您的代码可以启动timer http://msdn.microsoft.com/en-us/library/system.threading.timer.aspx每天调用 WCF 服务。
当然,计时器可以用代码实现。简单定时器实现的示例包括this https://stackoverflow.com/questions/3243348/how-to-call-a-method-daily-at-specific-time-in-c/3243354#3243354, this http://msdn.microsoft.com/en-us/library/yz1c7148.aspx#exampleToggle, and this https://stackoverflow.com/questions/1091710/c-timer-or-thread-sleep/1091753#1091753.
如果您使用 ASP.NET,则将计时器启动代码放入Application_Start
自动启动应用程序的 global.asax 文件中的方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)