网站发布和更新时是否有活动?
我在global.asax中尝试了Application_End,但似乎没有引发该事件。
答案 0 :(得分:1)
我建议同时使用Kudu和Microsoft ASP.NET WebHooks预览。
Kudu是git部署,WebJobs以及Azure网站中各种其他功能的引擎(Kudu源代码在GitHub上)
使用Kudu,Azure网站可以支持Web挂钩。每当部署完成该部署的结果时,都会调用一个事件“PostDeployment”。
Microsoft ASP.NET WebHooks预览提供了一个通用模型,用于从任意数量的WebHook提供程序接收和处理WebHook,包括对Kudu(Azure Web App部署)的支持。
因此,您可以使用Kudu WebHooks在部署更新时收到通知。 (但这需要使用Git Deploy而不是其他方式来发布您的网站。)
以下是这样做的方法: 首先安装Microsoft.AspNet.WebHooks.Receivers.Azure Nuget包。 将这两行添加到WebApiConfig.Register方法:
config.InitializeReceiveKuduWebHooks();
config.InitializeReceiveAzureAlertWebHooks();
然后添加处理程序:
public class KuduWebHookHandler : WebHookHandler
{
public KuduWebHookHandler()
{
Receiver = "kudu";
}
public override Task ExecuteAsync(string generator, WebHookHandlerContext context)
{
// Convert to POCO type
KuduNotification notification = context.GetDataOrDefault<KuduNotification>();
// Get the notification message
string message = notification.Message;
// Get the notification author
string author = notification.Author;
return Task.FromResult(true);
}
}
然后配置一个秘密,可以验证WebHook请求确实来自Kudu。 使用高熵值,例如SHA256哈希值或类似值,您可以从http://www.freeformatter.com/hmac-generator.html获取。此外,通过Azure门户设置它们,而不是在Web.config文件中对它们进行硬编码 另外,通过Azure门户设置它们,而不是在Web.config文件中对它们进行硬编码。
这里有一篇关于这个主题的更完整的帖子(http://blogs.msdn.com/b/webdev/archive/2015/10/04/receive-webhooks-from-azure-alerts-and-kudu-azure-web-app-deployment.aspx)
希望这会有所帮助 最好的祝福 斯特凡
答案 1 :(得分:0)
我明白了。在Application_Start事件中,我绑定
RoleEnvironment.Stopping += RoleEnvironmentStopping;
private void RoleEnvironmentStopping(object sender, RoleEnvironmentStoppingEventArgs e)
{
// do something ...
}