我有一个非常简单的服务契约(Contract),用于管理自己的数据导入,类似于:
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 auto-start 的 IIS 托管应用程序,假设您至少运行 7.5 版的 IIS。自动启动不会在计时器上运行,但有助于确保您的应用程序始终运行。 IIS 启动应用程序后,您的代码可以启动 timer每天调用 WCF 服务。
当然,计时器将在代码中实现。简单计时器实现的示例包括 this , this , 和 this .
如果您使用的是 ASP.NET,则将计时器启动代码放在自动启动应用程序的 global.asax 文件中的 Application_Start
方法中。
关于wcf - 如何自动化/安排托管在 IIS 中的 WCF 服务调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6899050/